DmitriyVasilev
07.02.2019, 12:08
Здравствуйте, при назначении саппорта, создаются две строки с одним и тем же именем. как исправить, чтобы при назначении сапорта создавалась только одна строка в бд?
CMD:spmenu(playerid, params[])
{
if(User[playerid][pAdmin] < 9) return 1;
new Names[32], query[128];
if(User[playerid][pAdmin] > 7) format(query, sizeof(query), "{FF8040}Назначить саппорта\n");
mysql_format(DATABASE, QUERY, 62, "SELECT Name FROM `"TABLE_ACCOUNTS"` WHERE pHelper IN ('1','2')");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
for(new i = 0; i < r; i++)
{
new strin[40];
cache_get_field_content(i,"Name",Names,DATABASE,60);
format(strin,sizeof(strin),"%s\n",Names);
strcat(query, strin);
}
}
ShowPlayerDialog(playerid, 21021, DIALOG_STYLE_LIST, "Управление саппортами", query, "Далее", "Закрыть");
return true;
}
CMD:addsupport(playerid, params[])
{
if(User[playerid][pAdmin] < 9 || dostup[playerid] == 0) return 1;
new name[32], var;
if(sscanf(params, "s[32]i", name, var)) return SCM(playerid, -1, "Введите: /addsupport [ник] [1 - назначить | 0 - снять]");
new para1 = GetPlayerID(name);
if(IsPlayerConnected(para1) && para1 != INVALID_PLAYER_ID)
{
if(var == 1)
{
User[para1][pHelper] = 2;
mysql_format(DATABASE,QUERY, 256, "UPDATE accounts SET pHelper = '2' WHERE name = '%s'",name);
format(YCMDstr, sizeof(YCMDstr), "Вы назначили %s[%i] саппортом", name, para1);
}
else
{
User[para1][pHelper] = 0;
mysql_format(DATABASE,QUERY, 256, "UPDATE accounts SET pHelper = '0' WHERE name = '%s'",name);
format(YCMDstr, sizeof(YCMDstr), "Вы сняли %s[%i] с саппорта", name, para1);
}
}
else
{
if(var == 1)
{
mysql_format(DATABASE,QUERY, 256, "UPDATE accounts SET pHelper = '2' WHERE name = '%s'",name);
format(YCMDstr, sizeof(YCMDstr), "Вы назначили %s саппортом", name);
}
else
{
mysql_format(DATABASE,QUERY, 256, "UPDATE accounts SET pHelper = '0' WHERE name = '%s'",name);
format(YCMDstr, sizeof(YCMDstr), "Вы сняли %s с саппорта", name);
}
}
mysql_function_query(DATABASE,QUERY,false,"","");
SendClientMessage(playerid, COLOR_YELLOW2, YCMDstr);
return 1;
}
//Public OnDialogResponse
case 21021:
{
if(!response) return true;
if(!strcmp(inputtext, "Назначить саппорта", true))
{
return ShowPlayerDialog(playerid, 21023, DIALOG_STYLE_INPUT, "Добавить саппорта", "Введите ник нейм саппорта", "Добавить", "Назад");
}
SetPVarString(playerid, "SelectedSupport", inputtext);
new query[128];
format(query, sizeof(query), "[0] Разморозить права\n[1] Заморозить права\n");
if(User[playerid][pAdmin] > 7) strcat(query, "[2] Снять саппорта", sizeof(query));
ShowPlayerDialog(playerid, 21022, DIALOG_STYLE_LIST, "Управление саппортами", query, "Выбор", "Назад");
}
case 21022:
{
if(!response) return DeletePVar(playerid, "SelectedSupport"),SetTimerEx("SpMenu" , 50, false, "i", playerid);
new Names[32];
new cmd_call[35];
GetPVarString(playerid, "SelectedSupport", Names, sizeof(Names));
switch(listitem)
{
case 0:
{
format(cmd_call, sizeof(cmd_call), "%s 1", Names);
callcmd::setsupport(playerid,cmd_call);
}
case 1:
{
format(cmd_call, sizeof(cmd_call), "%s 0", Names);
callcmd::setsupport(playerid,cmd_call);
}
case 2:
{
format(cmd_call, sizeof(cmd_call), "%s 0", Names);
callcmd::addsupport(playerid,cmd_call);
}
}
SetTimerEx("SpMenu" , 50, false, "i", playerid);
}
case 21023:
{
if(!response) return DeletePVar(playerid, "SelectedSupport"),callcmd::spmenu(playerid,string);
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 21023, DIALOG_STYLE_INPUT, "Добавить саппорта", "Введите ник нейм саппорта", "Добавить", "Назад");
format(string, sizeof(string), "%s 1", inputtext);
callcmd::addsupport(playerid,string);
SetTimerEx("SpMenu" , 50, false, "i", playerid);
}
//public
@_SpMenu(playerid);
@_SpMenu(playerid) callcmd::spmenu(playerid,"");
CMD:spmenu(playerid, params[])
{
if(User[playerid][pAdmin] < 9) return 1;
new Names[32], query[128];
if(User[playerid][pAdmin] > 7) format(query, sizeof(query), "{FF8040}Назначить саппорта\n");
mysql_format(DATABASE, QUERY, 62, "SELECT Name FROM `"TABLE_ACCOUNTS"` WHERE pHelper IN ('1','2')");
mysql_query(DATABASE, QUERY);
new r = cache_num_rows();
if(r)
{
for(new i = 0; i < r; i++)
{
new strin[40];
cache_get_field_content(i,"Name",Names,DATABASE,60);
format(strin,sizeof(strin),"%s\n",Names);
strcat(query, strin);
}
}
ShowPlayerDialog(playerid, 21021, DIALOG_STYLE_LIST, "Управление саппортами", query, "Далее", "Закрыть");
return true;
}
CMD:addsupport(playerid, params[])
{
if(User[playerid][pAdmin] < 9 || dostup[playerid] == 0) return 1;
new name[32], var;
if(sscanf(params, "s[32]i", name, var)) return SCM(playerid, -1, "Введите: /addsupport [ник] [1 - назначить | 0 - снять]");
new para1 = GetPlayerID(name);
if(IsPlayerConnected(para1) && para1 != INVALID_PLAYER_ID)
{
if(var == 1)
{
User[para1][pHelper] = 2;
mysql_format(DATABASE,QUERY, 256, "UPDATE accounts SET pHelper = '2' WHERE name = '%s'",name);
format(YCMDstr, sizeof(YCMDstr), "Вы назначили %s[%i] саппортом", name, para1);
}
else
{
User[para1][pHelper] = 0;
mysql_format(DATABASE,QUERY, 256, "UPDATE accounts SET pHelper = '0' WHERE name = '%s'",name);
format(YCMDstr, sizeof(YCMDstr), "Вы сняли %s[%i] с саппорта", name, para1);
}
}
else
{
if(var == 1)
{
mysql_format(DATABASE,QUERY, 256, "UPDATE accounts SET pHelper = '2' WHERE name = '%s'",name);
format(YCMDstr, sizeof(YCMDstr), "Вы назначили %s саппортом", name);
}
else
{
mysql_format(DATABASE,QUERY, 256, "UPDATE accounts SET pHelper = '0' WHERE name = '%s'",name);
format(YCMDstr, sizeof(YCMDstr), "Вы сняли %s с саппорта", name);
}
}
mysql_function_query(DATABASE,QUERY,false,"","");
SendClientMessage(playerid, COLOR_YELLOW2, YCMDstr);
return 1;
}
//Public OnDialogResponse
case 21021:
{
if(!response) return true;
if(!strcmp(inputtext, "Назначить саппорта", true))
{
return ShowPlayerDialog(playerid, 21023, DIALOG_STYLE_INPUT, "Добавить саппорта", "Введите ник нейм саппорта", "Добавить", "Назад");
}
SetPVarString(playerid, "SelectedSupport", inputtext);
new query[128];
format(query, sizeof(query), "[0] Разморозить права\n[1] Заморозить права\n");
if(User[playerid][pAdmin] > 7) strcat(query, "[2] Снять саппорта", sizeof(query));
ShowPlayerDialog(playerid, 21022, DIALOG_STYLE_LIST, "Управление саппортами", query, "Выбор", "Назад");
}
case 21022:
{
if(!response) return DeletePVar(playerid, "SelectedSupport"),SetTimerEx("SpMenu" , 50, false, "i", playerid);
new Names[32];
new cmd_call[35];
GetPVarString(playerid, "SelectedSupport", Names, sizeof(Names));
switch(listitem)
{
case 0:
{
format(cmd_call, sizeof(cmd_call), "%s 1", Names);
callcmd::setsupport(playerid,cmd_call);
}
case 1:
{
format(cmd_call, sizeof(cmd_call), "%s 0", Names);
callcmd::setsupport(playerid,cmd_call);
}
case 2:
{
format(cmd_call, sizeof(cmd_call), "%s 0", Names);
callcmd::addsupport(playerid,cmd_call);
}
}
SetTimerEx("SpMenu" , 50, false, "i", playerid);
}
case 21023:
{
if(!response) return DeletePVar(playerid, "SelectedSupport"),callcmd::spmenu(playerid,string);
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 21023, DIALOG_STYLE_INPUT, "Добавить саппорта", "Введите ник нейм саппорта", "Добавить", "Назад");
format(string, sizeof(string), "%s 1", inputtext);
callcmd::addsupport(playerid,string);
SetTimerEx("SpMenu" , 50, false, "i", playerid);
}
//public
@_SpMenu(playerid);
@_SpMenu(playerid) callcmd::spmenu(playerid,"");