• 0
F1re

Проблема с /alogin

Вопросы

Любой игрок вводит /alogin, вводит свой пароль от аккаунта и получает админку 6 лвл.

Если даже так, я указал игроку 3 лвл админки он при /alogin получает 6 лвл.

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


Ссылка на сообщение

16 ответов на этот вопрос

  • 0

Замените свой паблик этим, и либо сами, либо с кем-то вызовите диалог регистрации нового администратора. После скиньте сюда логи. 

Спойлер

public admReg(playerid, name[])
{
    new rows, fields;
    cache_get_data(rows, fields);
    if(!rows) return 1;
    new inputtext[16], string[144], ipplayer[256];
    GetPVarString(playerid, "inputtext", inputtext, sizeof(inputtext));
	printf("%s(%d) - inputtext(id)", inputtext, playerid);
    mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `password` = '%s' WHERE `name` = '%s' LIMIT 1", inputtext, GetName(playerid));
    mysql_tquery(dbHandle, string, "", "");
    PI[playerid][pAdmin] = cache_get_row_int(0, 1, dbHandle);
	printf("%d(%d) - leveladm(playerid)", PI[playerid][pAdmin], playerid);
    GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));
    MysqlUpdatePlayerInt(playerid, "admin", PI[playerid][pAdmin]);
    static const Admin_Names[6][32] = {"Хелпер","Мл. Администратор","Администратор","Зам. ГА","Гл. Администратор","Руководитель"};
    if(PI[playerid][pSex] == 1) format(string, sizeof(string), "[A] %s %s[%i] авторизовался [IP: %s | R-IP %s]", Admin_Names[PI[playerid][pAdmin]-1], GetName(playerid), playerid, PI[playerid][pLastIP],PI[playerid][pRegIP]);
    else format(string, sizeof(string), "[A] %s %s[%i] авторизовалась [IP: %s | R-IP %s]", Admin_Names[PI[playerid][pAdmin]-1], GetName(playerid), playerid, ipplayer,PI[playerid][pIP]);
    SendAdminMessage(0x99CCFFFF, string);
    AdminLogged[playerid] = true;
    new day, month, year;
    getdate(year, month, day);
    mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `last_connect` = '%d.%d.%d' WHERE `name` = '%s' LIMIT 1", day, month, year, GetName(playerid));
    mysql_tquery(dbHandle, string, "", "");
    return 1;
}

 

 

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


Ссылка на сообщение
  • 0
CMD:alogin(playerid, params[])
{
    if(GetPVarInt(playerid, "check_adm") > gettime()) return 1;
    else if(AdminLogged[playerid]) return SendClientMessage(playerid, COLOR_GREY, "Вы уже авторизовались как администратор!");
 	new string[128];
	format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", GetName(playerid));
	mysql_tquery(dbHandle, string, "adm", "is", playerid, GetName(playerid));
 	SetPVarInt(playerid, "check_adm", gettime()+5);
 	return 1;
}

 

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


Ссылка на сообщение
  • 0

@Timur_Top выкладывайте паблик adm под спойлером. Также, скиньте любую админскую команду (также под спойлером), например команду кика игрока. 

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


Ссылка на сообщение
  • 0
Спойлер

public adm(playerid, name[]) {     new rows, fields;     cache_get_data(rows, fields);     if(!rows)     {         if(PI[playerid][pAdmin] > ADM_NONE) PI[playerid][pAdmin] = ADM_NONE;         return 1;     }     new Password[16];     cache_get_field_content(0, "password", Password, dbHandle);     if(!strcmp(Password, "qwerty", true))     {         SetPVarInt(playerid, "adm", 1);         ShowPlayerDialog(playerid, D_adm, DIALOG_STYLE_PASSWORD, "{ffcc00}Регистрация администратора", "{FFFFFF}Введите пароль, который будет от панели администратора\n\n{63BD4E}Примечание:\n\t- Пароль должен состоять из латинских букв и цифр\n\t- Размер пароля от 6 до 15 символов", "Принять", "Отмена");     }     else     {         SetPVarInt(playerid, "adm", 0);         ShowPlayerDialog(playerid, D_adm, DIALOG_STYLE_PASSWORD, "{ffcc00}Доступ администратора", "{FFFFFF}Введите Ваш пароль от панели администратора\nЕсли вы забыли ваш пароль,то обратись в руководителю.", "Принять", "Отмена");     }     return 1; }

Спойлер

CMD:kick(playerid, params[])
{
    if(PI[playerid][pAdmin] < ADM_SUPER_MODER) return SendClientMessage(playerid, COLOR_WHITE, "Êîìàíäà íå îáíàðóæåíà! Èñïîëüçóéòå {FFCC00}/menu {FFFFFF}äëÿ ïðîñìîòðà êîìàíä");
    else if(AdminLogged[playerid] == false) return SendClientMessage(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin);
    else if(sscanf(params, "uS()[32]", params[0], params[1])) return SendClientMessage(playerid, VAGOS_COLOR, "• [ Ïîäñêàçêà ] {ffffff}Ââåäèòå: /kick [id èãðîêà] [ïðè÷èíà]");
    else if(!IsPlayerConnected(params[0]) || params[0] == INVALID_PLAYER_ID || params[0] == playerid) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotOnline);
       else if(PlayerLogged[params[0]] == false) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotAuthorized);
    else if(PI[playerid][pAdmin] <= PI[params[0]][pAdmin]) return AttemptRemoveAdmin(playerid);
    else if(IsIpFound(params[1]) || CheckString(params[1])) return AdminAntisliv(playerid, params[1]);
    new string[128];
    if(strlen(params[1])) format(string, sizeof(string), "Àäìèíèñòðàòîð %s êèêíóë èãðîêà %s. Ïðè÷èíà: %s", GetName(playerid), GetName(params[0]), params[1]);
    else format(string, sizeof(string), "Àäìèíèñòðàòîð %s êèêíóë èãðîêà %s.", GetName(playerid), GetName(params[0]));
    SendAdminMessageToAll(COLOR_RED, string, params[0]);
    SendLog("Kick",string);
    Kick(params[0]);
    return 1;
}
 

 

 

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


Ссылка на сообщение
  • 0

Свою команду /alogin замените этой, и диалог d_adm скиньте еще.

CMD:alogin(playerid, params[])
{
	if(PI[playerid][pAdmin] < 1) return true; 
    if(GetPVarInt(playerid, "check_adm") > gettime()) return 1;
    else if(AdminLogged[playerid]) return SendClientMessage(playerid, COLOR_GREY, "Вы уже авторизовались как администратор!");
 	new string[128];
	format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", GetName(playerid));
	mysql_tquery(dbHandle, string, "adm", "is", playerid, GetName(playerid));
 	SetPVarInt(playerid, "check_adm", gettime()+5);
 	return 1;
}

 

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


Ссылка на сообщение
  • 0

@stibs можно на английском написать ? найти не могу

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


Ссылка на сообщение
  • 0
Спойлер

 


case D_adm:
        {
            if(!response) return 1;
            new string[144];
            switch(GetPVarInt(playerid,"adm"))
            {
                case 1:
                {
                    if(!strlen(inputtext)|| !strcmp(inputtext, "qwerty", true) || strlen(inputtext) < 6 || strlen(inputtext) > 16 || strfind(inputtext, "=", true) != -1)
                        return ShowPlayerDialog(playerid, D_adm, DIALOG_STYLE_PASSWORD, "{ffcc00}Регистрация администратора", "{FFFFFF}Введите пароль, который будет от панели администратора\n\n{63BD4E}Примечание:\n\t- Пароль должен состоять из латинских букв и цифр\n\t- Размер пароля от 6 до 15 символов", "Принять", "Отмена");
                    SetPVarString(playerid, "inputtext", inputtext);
                    format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s'", GetName(playerid));
                    mysql_tquery(dbHandle, string, "admReg", "is", playerid, GetName(playerid));
                }
                case 0:
                {
                    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, D_adm, DIALOG_STYLE_PASSWORD, "{ffcc00}Доступ администратора", "{FFFFFF}Введите Ваш пароль от панели администратора\nЕсли вы забыли ваш пароль,то обратись в руководителю.", "Принять", "Отмена");
                    mysql_format(dbHandle, string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE `name` = '%s' AND `password` = '%e'", GetName(playerid), inputtext);
                    mysql_tquery(dbHandle, string, "admAuth", "is", playerid, inputtext);
                }
            }
            return 1;
         }
    }
    return 1;
}

 

 

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


Ссылка на сообщение
  • 0
public admAuth(playerid, inputtext[])
{
    new rows, fields;     cache_get_data(rows, fields);     if(!rows)
    {
        SendClientMessage(playerid, COLOR_GREY, "Íåâåðíûé ïàðîëü");         SetPVarInt(playerid, "attempt_pass", GetPVarInt(playerid, "attempt_pass") + 1);         if(GetPVarInt(playerid, "attempt_pass") > 3)
        {
            DeletePVar(playerid, "attempt_pass");             SKick(playerid, 2112);
        }
    }
    else
    {
        new string[144], ipplayer[256];         AdminLogged[playerid] = true;         PI[playerid][pAdmin] = cache_get_row_int(0, 1, dbHandle);         AdminInfo[playerid][admGoto] = cache_get_row_int(0, 6, dbHandle);         AdminInfo[playerid][admGethere] = cache_get_row_int(0, 7, dbHandle);         AdminInfo[playerid][admSpectate] = cache_get_row_int(0, 8, dbHandle);         AdminInfo[playerid][admTimeMin] = cache_get_row_int(0, 9, dbHandle);         GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));         static const Admin_Names[6][32] =
        {
            "Õåëïåð","Ìë. Àäìèíèñòðàòîð","Àäìèíèñòðàòîð","Çàì. ÃÀ","Ãë. Àäìèíèñòðàòîð","Ðóêîâîäèòåëü"
        }
        ;         if(PI[playerid][pSex] == 1) format(string, sizeof(string), "[A] %s %s[%i] àâòîðèçîâàëñÿ [IP: %s | R-IP %s]", Admin_Names[PI[playerid][pAdmin]-1], GetName(playerid), playerid,  PI[playerid][pLastIP],PI[playerid][pRegIP]);         else format(string, sizeof(string), "[A] %s %s[%i] àâòîðèçîâàëàñü [IP: %s | R-IP %s]", Admin_Names[PI[playerid][pAdmin]-1], GetName(playerid), playerid, ipplayer,PI[playerid][pIP]);         SendAdminMessage(0x99CCFFFF, string);         new day, month, year;           getdate(year, month, day);         mysql_format(dbHandle, string, 144, "UPDATE "T_ADMIN" SET `last_connect` = '%d.%d.%d' WHERE `name` = '%s' LIMIT 1", day, month, year, GetName(playerid));         mysql_tquery(dbHandle, string, "", "");
    }
    return 1;
}

 

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


Ссылка на сообщение
  • 0
Спойлер

public admReg(playerid, name[])
{
    new rows, fields;
    cache_get_data(rows, fields);
    if(!rows) return 1;
    new inputtext[16], string[144], ipplayer[256];
    GetPVarString(playerid, "inputtext", inputtext, sizeof(inputtext));
    mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `password` = '%s' WHERE `name` = '%s' LIMIT 1", inputtext, GetName(playerid));
    mysql_tquery(dbHandle, string, "", "");
    PI[playerid][pAdmin] = cache_get_row_int(0, 1, dbHandle);
    GetPlayerIp(playerid,ipplayer,sizeof(ipplayer));
    MysqlUpdatePlayerInt(playerid, "admin", PI[playerid][pAdmin]);
    static const Admin_Names[6][32] = {"Хелпер","Мл. Администратор","Администратор","Зам. ГА","Гл. Администратор","Руководитель"};
    if(PI[playerid][pSex] == 1) format(string, sizeof(string), "[A] %s %s[%i] авторизовался [IP: %s | R-IP %s]", Admin_Names[PI[playerid][pAdmin]-1], GetName(playerid), playerid, PI[playerid][pLastIP],PI[playerid][pRegIP]);
    else format(string, sizeof(string), "[A] %s %s[%i] авторизовалась [IP: %s | R-IP %s]", Admin_Names[PI[playerid][pAdmin]-1], GetName(playerid), playerid, ipplayer,PI[playerid][pIP]);
    SendAdminMessage(0x99CCFFFF, string);
    AdminLogged[playerid] = true;
    new day, month, year;
    getdate(year, month, day);
    mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `last_connect` = '%d.%d.%d' WHERE `name` = '%s' LIMIT 1", day, month, year, GetName(playerid));
    mysql_tquery(dbHandle, string, "", "");
    return 1;
}

 

 

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


Ссылка на сообщение
  • 0

@Timur_Top скиньте структуру таблицы "admins" (зайдите в эту таблицу и нажмите экспортировать, скачавшийся файл киньте сюда). 

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


Ссылка на сообщение
  • 0

@stibs Способ экспорта: Быстрый , Обычный

И Формат SQL 

Какой способ выбрать?

 

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

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

  • Похожий контент

    • Danya_Lucky
      От Danya_Lucky
      CMD:car(playerid, params[])
      {
          new fmt_text[2640], Cache: result, id;
          mysql_format(mysql, fmt_text, sizeof fmt_text, "SELECT * FROM ownable_cars WHERE owner_id='%d'", GetPlayerAccountID(playerid));
          result = mysql_query(mysql, fmt_text, true);
          new rows = cache_num_rows();
          if(!rows) return SendClientMessage(playerid, 0x999999FF, "У Вас нет личного транспорта");
          new model_id, region[10], car_number[10];
          format(fmt_text, sizeof fmt_text, "");
          for(new i = 0; i < rows; i ++)
          {
              id = cache_get_field_content_int(i, "id");
              model_id = cache_get_field_content_int(i, "model_id") - 400;
              cache_get_field_content(i, "number", car_number);
              cache_get_field_content(i, "region", region);
              STRING_GLOBAL[0] = EOS;
              format(STRING_GLOBAL, sizeof STRING_GLOBAL, "{FFFFFF}%d. %s {888888}[%s | %s]\n", i + 1, GetVehicleInfo(model_id, VI_NAME), car_number, region);
              strcat(fmt_text, STRING_GLOBAL);
              SetPlayerListitemValue(playerid, i, id);
          }
          Dialog(playerid, DIALOG_OWNABLE_CAR_LIST, DIALOG_STYLE_LIST,"{0099FF}Выберите транспорт",fmt_text,"Выбрать", "Закрыть");
          cache_delete(result);
          return 1;
      }
    • Danya_Lucky
      От Danya_Lucky
      Как сделать /gh на визуал ник?
       
    • Danya_Lucky
      От Danya_Lucky
      Как сделать падающие машины /addpcar как на поинте?