Sign in to follow this  
Followers 0
F1re

Проблема с /alogin

Рекомендованные сообщения



17 posts in this topic

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

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

Share this post


Link to post
Share on other sites
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;
}

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Спойлер

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;
}
 

 

 

Share this post


Link to post
Share on other sites

Свою команду /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;
}

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Спойлер

 


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;
}

 

 

Share this post


Link to post
Share on other sites
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;
}

 

Share this post


Link to post
Share on other sites

@Timur_Top еще раз скиньте AdmReg, скопируйте код из PAWN на русской раскладке, чтобы не было квакозябр. 

Share this post


Link to post
Share on other sites
Спойлер

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;
}

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

И Формат SQL 

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

 

Share this post


Link to post
Share on other sites

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

Спойлер

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;
}

 

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Bot23123
      By Bot23123
      Ошибки:
       
      C:\Users\danil\Desktop\Raid RolePlay\gamemodes\raid.pwn(340) : error 017: undefined symbol "DIG_REGREF"
      C:\Users\danil\Desktop\Raid RolePlay\gamemodes\raid.pwn(370) : error 017: undefined symbol "DIG_REGREF"

    • Gender Bender
      By Gender Bender
      Здравствуйте, заметил, что у многих проектов со своими лаунчерами при входе в игру версия клиента своя (К примеру Arizona PC и.т.д)
       
      Как сделать такую же? 
    • Bot23123
      By Bot23123
      Добрый день, ломаю голову не знаю где заменить имена для фракций подскажите пожалуйста
       
      При компиляции мода вылазит ошибка error 018: initialization data exceeds declared size