PHP код:
if(strcmp("/вопрос", cmdtext, true, 8) == 0)return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Техподдержка","Введите вопрос и агенты техподдержки в ближайшее время на них ответят","Отправить","Отмена");
if(strcmp("/ответ", cmdtext, true, 7) == 0)
{
if(Agent{playerid} == 1)return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Техподдержка","Введите ID вопроса","Дальше","Отмена");
}
if(strcmp("/все_вопросы", cmdtext, true, 13) == 0)
{
if(Agent{playerid} == 1)
{
new String_support1[6],l;String_support = "";
for(new q; q < MAX_QUESTIONS; ++q)
{
if(ID_question[q] == -1)continue;
if(l >= MAX_AGENT)break;
format(String_support1,6,"#%d\n",q);
strcat(String_support,String_support1);
Agent_list_ID_question[playerid][l] = q;
l++;
}
if(l == 0)return SendClientMessage(playerid,0xCC0000ff, "На данный момент вопросов нет!");
return ShowPlayerDialog(playerid,6,DIALOG_STYLE_LIST,"Техподдержка",String_support,"Выбрать","Закрыть");
}
}
if(strcmp("/все_агенты", cmdtext, true, 12) == 0)
{
new name[MAX_PLAYER_NAME],l;String_support = "";
for(new q; q < MAX_PLAYERS; ++q)
{
if(Agent{q} == 0)continue;
GetPlayerName(q,name,MAX_PLAYER_NAME);
strcat(String_support, name),strcat(String_support, "\n");
Agent_list_ID_question[playerid][l] = q;
l++;
}
if(l == 0)return SendClientMessage(playerid,0xCC0000ff, "На данный момент агентов нет!");
return ShowPlayerDialog(playerid,8,DIALOG_STYLE_LIST,"Техподдержка",String_support,"Выбрать","Закрыть");
}
//Для теста
if(strcmp("/sethelp_0", cmdtext, true, 10) == 0){Agent{playerid} = 0;return 1;}
if(strcmp("/sethelp_1", cmdtext, true, 10) == 0){Agent{playerid} = 1;return 1;}
PHP код:
switch(dialogid)
{
case 1:
{
if(response)
{
if(strlen(inputtext) < 5 || strlen(inputtext) > 90)return ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Техподдержка","Введите вопрос и агенты техподдержки в ближайшее время на них ответят","Отправить","Отмена"),SendClientMessage(playerid,0xCC0000ff, "Вопрос может содержать не менее 5 символов и не более 90 символов!");
if(Player_question_all{playerid} >= MAX_PLAYER_QUESTIONS)return SendClientMessage(playerid,0xCC0000ff, "Вы отправили слишком много вопросов,ожидайте ответа!");
new name[MAX_PLAYER_NAME],q;String_support = "";
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
for(; q < MAX_QUESTIONS; ++q)
{
if(ID_question[q] != -1)continue;
ID_question[q] = playerid;
format(Player_question[q],160,"%s[%d]: %s",name,playerid,inputtext);
format(String_support,160,"#%d - Вопрос от %s[%d]: %s",q,name,playerid,inputtext);
Time_question[q] = gettime();
break;
}
if(q == MAX_QUESTIONS - 1 && ID_question[MAX_QUESTIONS - 1] == -1)return SendClientMessage(playerid,0xCC0000ff,"Отправьте вопрос позже!");
for(new q1; q1 < MAX_PLAYER_QUESTIONS; ++q1)
{
if(Player_ID_question[playerid][q1] == -1)Player_ID_question[playerid][q1] = q;
}
Player_question_all{playerid}++;
for(q = 0; q < MAX_PLAYERS; ++q)
{
if(Agent{q} == 0)continue;
SendClientMessage(q,0xFFCC33ff,String_support);
}
return SendClientMessage(playerid,0xFFCC33ff, "Ваш вопрос отправлен агентам техподдержки,ожидайте ответа!");
}
}
case 2:
{
if(response)
{
if(!strlen(inputtext))return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Техподдержка","Введите ID вопроса","Дальше","Отмена"),SendClientMessage(playerid,0xCC0000ff, "Вы не ввели ID вопроса!");
if(strval(inputtext) < 0 || strval(inputtext) > MAX_QUESTIONS)return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Техподдержка","Введите ID вопроса","Дальше","Отмена"),SendClientMessage(playerid,0xCC0000ff, "Не верный ID вопроса!");
if(!IsNumerals(inputtext))return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Техподдержка","Введите ID вопроса","Дальше","Отмена"),SendClientMessage(playerid,0xCC0000ff, "Вы ввели некорректный символ!");
if(ID_question[strval(inputtext)] == -1)return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Техподдержка","Введите ID вопроса","Дальше","Отмена"),SendClientMessage(playerid,0xCC0000ff, "Введённый ID вопроса не существует!");
Agent_str[playerid] = strval(inputtext);String_support = "";
format(String_support,200,"Введите ответ на вопрос:\n%s",Player_question[Agent_str[playerid]]);
return ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Техподдержка",String_support,"Ответить","Назад");
}
}
case 3:
{
if(response)
{
if(ID_question[Agent_str[playerid]] == -1)return SendClientMessage(playerid,0xCC0000ff, "Игрок вышел,или агенты поддержки уже ответили на вопрос!");
if(strlen(inputtext) < 2 || strlen(inputtext) > 90)
{
SendClientMessage(playerid,0xCC0000ff, "Ответ может содержать не менее 2 символов и не более 90 символов!");
String_support = "";format(String_support,200,"Введите ответ на вопрос:\n%s",Player_question[Agent_str[playerid]]);
return ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Техподдержка",String_support,"Ответить","Назад");
}
new Hour,Min,Sec;Converter_q_gettime(Agent_str[playerid],Hour,Min,Sec);String_support = "";
if(Hour == 0 && Min == 0)format(String_support,350,"Ваш вопрос: %s\nОтвет: %s\n\nАгенты техподдержки думали над вопросом %d секунд и ответили !",Player_question[Agent_str[playerid]],inputtext,Sec);
else if(Hour == 0 && Min != 0)format(String_support,350,"Ваш вопрос: %s\nОтвет: %s\n\nАгенты техподдержки думали над вопросом %d минут %d секунд и ответили !",Player_question[Agent_str[playerid]],inputtext,Min,Sec);
else if(Hour != 0)format(String_support,350,"Ваш вопрос: %s\nОтвет: %s\n\nАгенты техподдержки думали над вопросом %d часов %d минут %d секунд и ответили !",Player_question[Agent_str[playerid]],inputtext,Hour,Min,Sec);
ShowPlayerDialog(ID_question[Agent_str[playerid]],4,DIALOG_STYLE_MSGBOX,"Техподдержка",String_support,"Оценка","Закрыть");
for(new q; q < MAX_PLAYER_QUESTIONS; ++q)
{
if(Player_ID_question[playerid][ID_question[Agent_str[playerid]]] == Agent_str[playerid])Player_ID_question[playerid][ID_question[Agent_str[playerid]]] = -1;
}
Player_question_all{ID_question[Agent_str[playerid]]}--;
ID_question[Agent_str[playerid]] = -1;
return SendClientMessage(playerid,0xFFCC33ff, "Вы ответили на вопрос!");
}
else return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Техподдержка","Введите ID вопроса","Дальше","Отмена");
}
case 4:
{
if(response)
{
String_support = "";
for(new q = MAX_SPECIES_REPLY - 1; q > -1; --q)
strcat(String_support, Title_reply[q]),strcat(String_support, "\n");
return ShowPlayerDialog(playerid,5,DIALOG_STYLE_LIST,"Выберите оценку работы агентов техподдержки",String_support,"Выбрать","Закрыть");
}
}
case 5:
{
if(response)
{
Agent_assessment[playerid][(MAX_SPECIES_REPLY - 1) - listitem]++;
return SendClientMessage(playerid,0xFFCC33ff, "Спасибо за оценку!");
}
}
case 6:
{
if(response)
{
String_support = "";Agent_str[playerid] = Agent_list_ID_question[playerid][listitem];
format(String_support,200,"Введите ответ на вопрос:\n%s",Player_question[Agent_str[playerid]]);
return ShowPlayerDialog(playerid,7,DIALOG_STYLE_INPUT,"Техподдержка",String_support,"Ответить","Удалить вопрос");
}
}
case 7:
{
if(response)
{
if(ID_question[Agent_str[playerid]] == -1)return SendClientMessage(playerid,0xCC0000ff, "Игрок вышел,или агенты поддержки уже ответили на вопрос!");
if(strlen(inputtext) < 2 || strlen(inputtext) > 90)
{
SendClientMessage(playerid,0xCC0000ff, "Ответ может содержать не менее 2 символов и не более 90 символов!");
String_support = "";format(String_support,200,"Введите ответ на вопрос:\n%s",Player_question[Agent_str[playerid]]);
return ShowPlayerDialog(playerid,3,DIALOG_STYLE_INPUT,"Техподдержка",String_support,"Ответить","Назад");
}
new Hour,Min,Sec;Converter_q_gettime(Agent_str[playerid],Hour,Min,Sec);String_support = "";
if(Hour == 0 && Min == 0)format(String_support,350,"Ваш вопрос: %s\nОтвет: %s\n\nАгенты техподдержки думали над вопросом %d секунд и ответили !",Player_question[Agent_str[playerid]],inputtext,Sec);
else if(Hour == 0 && Min != 0)format(String_support,350,"Ваш вопрос: %s\nОтвет: %s\n\nАгенты техподдержки думали над вопросом %d минут %d секунд и ответили !",Player_question[Agent_str[playerid]],inputtext,Min,Sec);
else if(Hour != 0)format(String_support,350,"Ваш вопрос: %s\nОтвет: %s\n\nАгенты техподдержки думали над вопросом %d часов %d минут %d секунд и ответили !",Player_question[Agent_str[playerid]],inputtext,Hour,Min,Sec);
ShowPlayerDialog(ID_question[Agent_str[playerid]],4,DIALOG_STYLE_MSGBOX,"Техподдержка",String_support,"Оценка","Закрыть");
for(new q; q < MAX_PLAYER_QUESTIONS; ++q)
{
if(Player_ID_question[playerid][ID_question[Agent_str[playerid]]] == Agent_str[playerid])Player_ID_question[playerid][ID_question[Agent_str[playerid]]] = -1;
}
Player_question_all{ID_question[Agent_str[playerid]]}--;
ID_question[Agent_str[playerid]] = -1;
return SendClientMessage(playerid,0xFFCC33ff, "Вы ответили на вопрос!");
}
else
{
Player_ID_question[playerid][ID_question[Agent_str[playerid]]] = -1;
Player_question_all{ID_question[Agent_str[playerid]]}--;
ID_question[Agent_str[playerid]] = -1;
return SendClientMessage(playerid,0xCC0000ff, "Вы удалили вопрос!");
}
}
case 8:
{
if(response)
{
new String_support1[MAX_PLAYER_NAME + MAX_TEXT_REPLY];Agent_str[playerid] = Agent_list_ID_question[playerid][listitem],String_support = "";
GetPlayerName(Agent_str[playerid],String_support1,MAX_PLAYER_NAME);
format(String_support,100,"Агент поддержки %s\n\nБаллы:\n",String_support1);
for(new q = MAX_SPECIES_REPLY - 1; q > -1; --q)
{
format(String_support1,sizeof(String_support1),"%s:%d\n",Title_reply[q],Agent_assessment[playerid][q]);
strcat(String_support,String_support1);
}
return ShowPlayerDialog(playerid,8,DIALOG_STYLE_MSGBOX,"Техподдержка",String_support,"","Закрыть");
}
}
}