Lucas1337
Новичок
Проблема такая: Выдаю игроку админку - все ок,но когда игрок релогается - админка слетает.
Вот команда:
Вот stock SaveAcc(если нужен):
Вот команда:
PHP:
CMD:makeadmin(playerid,params[])
{
if(gLogAcc[playerid] == false)return Send(playerid,C_FADE5,"[Сервер]: Вы не авторизованы!");
if(PlayerInfo[playerid][pAdmin] < 5)return true;
if(gAdminLogged[playerid] == false)return ShowDialog(playerid,dg_Alogin,DIALOG_STYLE_INPUT,""c_Yellow"Админ. пароль","{FFFFFF}Авторизуйтесь под административной панелью.","Login","Cancel");
new string[128],gPlayername[MAX_PLAYER_NAME];
if(sscanf(params, "ud", params[0],params[1]))return Send(playerid, C_GREY, "Используйте: /makeadmin [playerid] [level]");
if(PlayerInfo[playerid][pAdmin] == 5 && params[1] > 4 || PlayerInfo[playerid][pAdmin] == 5 && params[1] < 0)return Send(playerid, C_GREY, "Используйте: /makeadmin [playerid] [Admin Level (0-4) ]");
else if(PlayerInfo[playerid][pAdmin] >= 6 && params[1] > 5 || PlayerInfo[playerid][pAdmin] >= 6 && params[1] < 0)return Send(playerid, C_GREY, "Используйте: /makeadmin [playerid] [Admin Level (0-5) ]");
if(!IsPlayerConnected(params[0]))return Send(playerid,C_FADE5,"[Сервер]: Игрок не найден");
if(gLogAcc[params[0]] == false)return Send(playerid, C_RED, "[Ошибка]: "c_Grey"Игрок не авторизован");
GetPlayerName(params[0], gPlayername, sizeof(gPlayername));
if(params[1] == 0)
{
if(PlayerInfo[params[0]][pAdmin] == 0)return Send(playerid,C_FADE5,"[Ошибка]: Игрок не администратор!");
f(string,"Администратор %s снял Вас с поста Администратора.",sendername(playerid));
Send(params[0],0x0572FFFF,string);
f(string,"Вы сняли %s с поста Администратора",gPlayername);
Send(playerid,0x0572FFFF,string);
gAdminLogged[params[0]] = false;
f(string,"[A] Игрок %s был снял с поста Администратора",gPlayername);
SendAdmin(C_FADE3,string,1);
}
else
{
f(string,"Администратор %s назначил Вас Администратором %d уровня.",sendername(playerid),params[1]);
Send(params[0],0x0572FFFF,string);
f(string,"Вы назначили %s Администратором %d уровня.",gPlayername,params[1]);
Send(playerid,0x0572FFFF,string);
f(string,"[A] Игрок %s был изменен в ранге администратора",gPlayername); //сюда крч
SendAdmin(C_FADE3,string,1);
}
PlayerInfo[params[0]][pAdmin] = params[1];
new query[256];
f(query, "UPDATE `players` SET `pAdmin` = '%d'",params[1]);
mysql_query(query);
SaveAcc(params[0]);
return true;
}
Вот stock SaveAcc(если нужен):
PHP:
stock SaveAcc(playerid)
{
if(gLogAcc[playerid] == true)
{
CheckMySQLConnection();
new query[2000],str[500];
strcat(query, "UPDATE players SET ");
f(str, "`pAdmin`=%d, `pBans`=%d, `pKills`=%d, `pDeaths`=%d, `pDsReg`=%d,",PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pBans],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pDsReg]); strcat(query, str);
f(str, "`pMuted`=%d, `pMuteTime`=%d, `pJailed`=%d,`pJailTime`=%d,`pProverka`=%d,",PlayerInfo[playerid][pMuted],PlayerInfo[playerid][pMuteTime],PlayerInfo[playerid][pJailed],PlayerInfo[playerid][pJailTime],PlayerInfo[playerid][pProverka]); strcat(query, str);
f(str, "`pBanned`=%d,`pVip`=%d,`pSer`=%d,`pZax`=%d,`pDmzon`=%d,`pRazzon`=%d,`pDue`=%d",PlayerInfo[playerid][pBanned],PlayerInfo[playerid][pVip],PlayerInfo[playerid][pSer],PlayerInfo[playerid][pZax],PlayerInfo[playerid][pDmzon],PlayerInfo[playerid][pRazzon],PlayerInfo[playerid][pDue]); strcat(query, str);
f(str, " WHERE `pNick` = '%s', `pDostup`=%d, `pAdmin`=%d",sendername(playerid), PlayerInfo[playerid][pDostup], PlayerInfo[playerid][pAdmin]); strcat(query, str);
if(!mysql_query(query)) mysql_debug(1), mysql_query(query), mysql_debug(0);
}
}
