Question

Проблема такова, при входе на сервер пишет: "Вы вошли как администратор. Для авторизации, введите /alogin", при вводе /alogin ничего не происходит, после чего в БД строка admin сбрасывыется на 0. Кто может, подскажите.

CMD:alogin(playerid, params[])
{
    if(GetPVarInt(playerid, "alogin_timer") > gettime()) return SendClientMessage(playerid, COLOR_GREY, "Не флуди");
    else if(gAdminLogged[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, "@Alogin", "is", playerid, GetName(playerid));
        SetPVarInt(playerid, "alogin_timer", gettime()+3);
        return true;
}  

Вот что находится в @alogin:

@Alogin(playerid, name[]);
@Alogin(playerid, name[])
{
    new rows;
        cache_get_row_count(rows);
        if(!rows)
        {
                if(pInfo[playerid][pAdmin] > 0)
                {
                        pInfo[playerid][pAdmin] = 0;
                        MysqlUpdatePlayerInt(playerid, "admin", pInfo[playerid][pAdmin]);
                }
                return true;
        }  

 

Share this post


Link to post

3 answers to this question

  • 0

@#Nelson, так здесь нет загрузки уровня администратора (в public-функции). Покажите структуру таблицы в базе данных и укажите версию библиотеки MySQL.

Share this post


Link to post
  • 0
1 час назад, odosenok сказал:

@#Nelson, так здесь нет загрузки уровня администратора (в public-функции). Покажите структуру таблицы в базе данных и укажите версию библиотеки MySQL.

R41-4

Структура прикреплена, извиняюсь за изображения в неверном порядке, форум сам перемешивает

 

 

Спойлер

4.PNG

3.PNG

2.PNG

5.PNG

1.PNG

 

 

Заметка от DEST , создано

Скриншоты и изображения добавляйте под спойлер.

Share this post


Link to post
  • 0

@#Nelson,

 

Спойлер

@Alogin(playerid, name[]);
@Alogin(playerid, name[])
{
	if(cache_num_rows() == 0)
		return SendClientMessage(playerid, -1, "Произошла техническая ошибка (аккаунт в базе данных не найден") & 0;
	
	cache_get_value_name_int(0, "admin", pInfo[playerid][pAdmin]); // загружаем из базы данных уровень администратора
	
	if(pInfo[playerid][pAdmin] == 0) // если уровень администратора равен нулю
		return SendClientMessage(playerid, -1, "Вы не являетесь администратором") & 0;
	else
		gAdminLogged[playerid] = true;
	
	return 1;
}

 

 

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • m1n1vv
      By m1n1vv
      #define SIZE_PASS 10 stock RandomPass(size = SIZE_PASS) { new string[SIZE_PASS+1], i; while (i < SIZE_PASS) string[++i] = random(2) ? random(26)+97 : random(10)+48; return string; } main() { printf("%s", RandomPass()); //2q4n8ni158 }  
    • Mishunin
      By Mishunin
      Команда чтобы закрыть/открыть сервер.
      Возможно требуется доработка
      в начало мода
      #define SERVER_NAME           "Name Role Play | Server 1" #define SERVER_COLOSE         "Name Role Play | Server 1 | Разработка.." #define RCON_PASS             "password testroleplayer" в конец