Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 13
  1. #1
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±

    Не выдается админка.

    Добрый день столкнулся с такой броблемой раньше админка выдавалась через /makeadmin Ник игрока ур админки, теперь я переделал под /makeadmin id игрока ур.админки но админка не выдается.

      Открыть/закрыть
    PHP код:
    CMD:makeadmin(playerid,params[])
    {
        new 
    playername[24],admin_level,string[128];
        if(
    sscanf(params,"s[24]i",playername,admin_level))return send(playerid,0x00BFFFAA,"[ÊÎÌÀÍÄÛ] {FFFFFF}/makeadmin [Íèê èãðîêà] [Óð.àäìèíêè].");
        
    f(string,"SELECT * FROM "T_ADMIN" WHERE `name` = '%s'",playername);
        
    mysql_tquery(dbHandle,string,"SetAdmin","isi",playerid,playername,admin_level);
        return 
    1;


    PHP код:
    forward SetAdmin(playeridname[], level);
    public 
    SetAdmin(playeridname[], level)
    {
        new 
    rowsfieldsstring[256];
        if(
    cache_get_row_count(dbHandle) > 0)
         {
            
    cache_get_data(rowsfields);
            if(
    rows)
            {
                if(!
    level)
                {
                    if(
    GetPlayerID(name) != INVALID_PLAYER_IDPI[GetPlayerID(name)][pAdmin] = 0;
                    
    mysql_format(dbHandlestringsizeof(string), "DELETE FROM "T_ADMIN" WHERE `name`='%s'"name);
                    
    mysql_tquery(dbHandlestring"""");
                    
    mysql_format(dbHandlestringsizeof(string), "UPDATE "T_ACCOUNTS" SET `admin` = '0' WHERE `name` = '%s'"name);
                    
    mysql_tquery(dbHandlestring"""");
                    
    format(stringsizeof(string), "Вы сняли %s с должности администратора"name);
                    
    SendClientMessage(playeridCOLOR_YELLOWstring);
                    
    format(stringsizeof(string), "%s снял %s с должности администратора"GetName(playerid), name);
                    
    SendLog("DeleteAdmin"string);
                }
                else
                {
                    if(
    GetPlayerID(name) != INVALID_PLAYER_IDPI[GetPlayerID(name)][pAdmin] = level;
                    
    mysql_format(dbHandlestringsizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1"levelname);
                    
    mysql_tquery(dbHandlestring"""");
                    
    format(stringsizeof(string), "Вы установили уровень администратора %s на %i"namelevel);
                    
    SendClientMessage(playeridCOLOR_YELLOWstring);
                    
    format(stringsizeof(string), "%s установил уровень администратора %s на %i"GetName(playerid), namelevel);
                    
    SendLog("EditAdmin"string);
                }
            }
            else
            {
                if(!
    level) return SendClientMessage(playeridCOLOR_GREY"Игрок не администратор");
                new 
    data[15];
                
    getdate(yearsmonthsdays);
                
    format(datasizeof(data), "%02d.%02d.%04d"daysmonthsyears);
                
    mysql_format(dbHandlestringsizeof(string), "INSERT INTO "T_ADMIN" (`name`, `level`, `last_connect`, `put_admin`, `data`) VALUES ('%s', %d, '%s', '%s', '%s')"nameleveldataGetName(playerid), data);
                
    mysql_tquery(dbHandlestring"""");
                
    format(stringsizeof(string), "%s добавлен в список администрации. Уровень полномочий %i"namelevel);
                
    SendClientMessage(playeridCOLOR_GREENstring);
                
    format(stringsizeof(string), "%s добавил в список администрации %s (%i уровень)"GetName(playerid), namelevel);
                
    SendLog("SetAdmin"string);
                if(
    GetPlayerID(name) != INVALID_PLAYER_ID)
                {
                    
    format(stringsizeof(string), "%s назначил Вас администратором"GetName(playerid));
                    
    SendClientMessage(GetPlayerID(name), COLOR_YELLOWstring);
                }
            }
        }
        else 
    SendClientMessage(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Этот игрок не в сети.");
        return 
    1;




      Открыть/закрыть
    PHP код:
    CMD:makeadmin(playerid,params[])
    {
        new 
    string[128],rows,fields;
        if(
    sscanf(params,"ri",params[0],params[1]))return send(playerid,0x00BFFFAA,"[КОМАНДЫ] {FFFFFF}/makeadmin [id игрока] [админка].");
        if(
    params[1] > 10 || params[1] < 1)return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Доступные уровни админки от 1 до 10.");
        if(!
    IsPlayerConnected(params[0]))return Notonline;
        if(
    cache_get_row_count(dbHandle) > 0)
         {
            
    cache_get_data(rowsfields);
            if(
    rows)
            {
                if(
    params[1])
                {
                    new 
    data[15];
                    
    getdate(yearsmonthsdays);
                    
    format(datasizeof(data), "%02d.%02d.%04d"daysmonthsyears);
                    
    mysql_format(dbHandlestringsizeof(string), "INSERT INTO "T_ADMIN" (`name`, `level`, `last_connect`, `put_admin`, `data`) VALUES ('%s', %d, '%s', '%s', '%s')"GetName(params[0]), params[1], dataGetName(playerid), data);
                    
    mysql_tquery(dbHandlestring"""");
                    
    format(stringsizeof(string), "%s добавлен в список администрации. Уровень полномочий %i"params[0], params[1]);
                    
    SendClientMessage(playeridCOLOR_GREENstring);
                    
    format(stringsizeof(string), "%s добавил в список администрации %s (%i уровень)"GetName(playerid), params[0], params[1]);
                }
                else
                {
                    
    PI[params[0]][pAdmin] = params[1];
                    
    mysql_format(dbHandlestringsizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1"params[1], GetName(params[0]));
                    
    mysql_tquery(dbHandlestring"""");
                    
    format(stringsizeof(string), "Вы установили уровень администратора %s на %i"params[0], params[1]);
                    
    SendClientMessage(playeridCOLOR_YELLOWstring);
                    
    format(stringsizeof(string), "%s установил уровень администратора %s на %i"GetName(playerid), params[0], params[1]);
                    
    SendLog("EditAdmin"string);
                }
            }
        
        }
        return 
    1;

    Последний раз редактировалось kala4iks; 13.10.2016 в 15:28.

  2. #2
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Выручайте

  3. #3
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    PHP код:
    if(GetPlayerID(name) != INVALID_PLAYER_IDPI[GetPlayerID(name)][pAdmin] = 0
    Эта строка не даст повесить админку на человека если он будет оффлайн

    UPD: Далее ты в БД всё же загрузил ему lvl, но тут ещё вопрос возникает, а не стоит ли у тебя сейв при выходе,
    и тут момент, у тебя на сервере он как ноль, а в БД записался, но ты ведь не загрузил с БД а перезаписал на ноль
    Последний раз редактировалось vovandolg; 14.10.2016 в 15:15.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    if(!IsPlayerConnected(params[0]))return Notonline;
    if(
    cache_get_row_count(dbHandle) > 0
    Может стоит сначала отправить запрос, а потом уже работать с данными из БД, а не пытаться сразу работать с какими-то данными?

    И да, IsPlayerConnected тут не нужна. "r" вернёт INVALID_PLAYER_ID, если игрок оффлайн. Такая проверка будет лучше
    PHP код:
    if(params[0] == INVALID_PLAYER_ID) return Notonline
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. #5
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Вот я обновил команду в базу данных админ записуется, а в аккаунт игрока уровень не выдается.

    PHP код:
    CMD:makeadmin(playerid,params[])
    {
        new 
    string[128];
        if(
    sscanf(params,"ri",params[0],params[1]))return send(playerid,0x00BFFFAA,"[КОМАНДЫ] {FFFFFF}/makeadmin [id игрока] [админка].");
        if(
    params[1] > 10 || params[1] < 1)return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Доступные уровни админки от 1 до 10.");
        if(!
    IsPlayerConnected(params[0]))return Notonline;
        if(
    PI[params[0]][pAdmin] != 0)
         {
             
    PI[params[0]][pAdmin] = params[1];
            
    mysql_format(dbHandlestringsizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1"params[1], GetName(params[0]));
            
    mysql_tquery(dbHandlestring"""");
            
    f(string,"Вы установили уровень администратора %s на %i"params[0], params[1]);
            
    send(playeridCOLOR_YELLOWstring);
        }
        else
        {
            new 
    data[15];
            
    getdate(yearsmonthsdays);
            
    PI[params[0]][pAdmin] = params[1];
            
    format(datasizeof(data), "%02d.%02d.%04d"daysmonthsyears);
            
    mysql_format(dbHandlestringsizeof(string), "INSERT INTO "T_ADMIN" (`name`, `level`, `last_connect`, `put_admin`, `data`) VALUES ('%s', %d, '%s', '%s', '%s')"GetName(params[0]), params[1], dataGetName(playerid), data);
            
    mysql_tquery(dbHandlestring"""");
            
    format(stringsizeof(string), "%s добавлен в список администрации. Уровень полномочий %i"GetName(params[0]), params[1]);
            
    SendClientMessage(playeridCOLOR_GREENstring);
            
    format(stringsizeof(string), "%s добавил в список администрации %s (%i уровень)"GetName(playerid), params[0], params[1]);
        }
        return 
    1;


  6. #6
    Аватар для Strong
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.10.2016
    Адрес
    В комнате у твоей мамки
    Сообщений
    18
    Репутация:
    0 ±
    Цитата Сообщение от kala4iks Посмотреть сообщение
    Вот я обновил команду в базу данных админ записуется, а в аккаунт игрока уровень не выдается.

    PHP код:
    CMD:makeadmin(playerid,params[])
    {
        new 
    string[128];
        if(
    sscanf(params,"ri",params[0],params[1]))return send(playerid,0x00BFFFAA,"[КОМАНДЫ] {FFFFFF}/makeadmin [id игрока] [админка].");
        if(
    params[1] > 10 || params[1] < 1)return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Доступные уровни админки от 1 до 10.");
        if(!
    IsPlayerConnected(params[0]))return Notonline;
        if(
    PI[params[0]][pAdmin] != 0)
         {
             
    PI[params[0]][pAdmin] = params[1];
            
    mysql_format(dbHandlestringsizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1"params[1], GetName(params[0]));
            
    mysql_tquery(dbHandlestring"""");
            
    f(string,"Вы установили уровень администратора %s на %i"params[0], params[1]);
            
    send(playeridCOLOR_YELLOWstring);
        }
        else
        {
            new 
    data[15];
            
    getdate(yearsmonthsdays);
            
    PI[params[0]][pAdmin] = params[1];
            
    format(datasizeof(data), "%02d.%02d.%04d"daysmonthsyears);
            
    mysql_format(dbHandlestringsizeof(string), "INSERT INTO "T_ADMIN" (`name`, `level`, `last_connect`, `put_admin`, `data`) VALUES ('%s', %d, '%s', '%s', '%s')"GetName(params[0]), params[1], dataGetName(playerid), data);
            
    mysql_tquery(dbHandlestring"""");
            
    format(stringsizeof(string), "%s добавлен в список администрации. Уровень полномочий %i"GetName(params[0]), params[1]);
            
    SendClientMessage(playeridCOLOR_GREENstring);
            
    format(stringsizeof(string), "%s добавил в список администрации %s (%i уровень)"GetName(playerid), params[0], params[1]);
        }
        return 
    1;

    Код:
    CMD:makeadmin(playerid,params[])
    {
        new string[128];
        if(sscanf(params,"ri",params[0],params[1]))return send(playerid,0x00BFFFAA,"[КОМАНДЫ] {FFFFFF}/makeadmin [id игрока] [админка].");
        if(params[1] > 10 || params[1] < 1)return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Доступные уровни админки от 1 до 10.");
        if(!IsPlayerConnected(params[0]))return Notonline;
        if(PI[params[0]][pAdmin] != 0)
         {
             PI[params[0]][pAdmin] = params[1];
            mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1", params[1], GetName(params[0]));
             mysql_format(dbHandle, string, sizeof(string), "UPDATE "Account" SET `Admin` = '%d' WHERE `name` = '%s' LIMIT 1", params[1], GetName(params[0]));
            mysql_tquery(dbHandle, string, "", "");
            f(string,"Вы установили уровень администратора %s на %i", params[0], params[1]);
            send(playerid, COLOR_YELLOW, string);
        }
        else
        {
            new data[15];
            getdate(years, months, days);
            PI[params[0]][pAdmin] = params[1];
            format(data, sizeof(data), "%02d.%02d.%04d", days, months, years);
            mysql_format(dbHandle, string, sizeof(string), "INSERT INTO "T_ADMIN" (`name`, `level`, `last_connect`, `put_admin`, `data`) VALUES ('%s', %d, '%s', '%s', '%s')", GetName(params[0]), params[1], data, GetName(playerid), data);
            mysql_tquery(dbHandle, string, "", "");
            format(string, sizeof(string), "%s добавлен в список администрации. Уровень полномочий %i", GetName(params[0]), params[1]);
            SendClientMessage(playerid, COLOR_GREEN, string);
            format(string, sizeof(string), "%s добавил в список администрации %s (%i уровень)", GetName(playerid), params[0], params[1]);
        }
        return 1;
    }

  7. #7
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Цитата Сообщение от Strong Посмотреть сообщение
    Код:
    CMD:makeadmin(playerid,params[])
    {
        new string[128];
        if(sscanf(params,"ri",params[0],params[1]))return send(playerid,0x00BFFFAA,"[КОМАНДЫ] {FFFFFF}/makeadmin [id игрока] [админка].");
        if(params[1] > 10 || params[1] < 1)return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Доступные уровни админки от 1 до 10.");
        if(!IsPlayerConnected(params[0]))return Notonline;
        if(PI[params[0]][pAdmin] != 0)
         {
             PI[params[0]][pAdmin] = params[1];
            mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1", params[1], GetName(params[0]));
             mysql_format(dbHandle, string, sizeof(string), "UPDATE "Account" SET `Admin` = '%d' WHERE `name` = '%s' LIMIT 1", params[1], GetName(params[0]));
            mysql_tquery(dbHandle, string, "", "");
            f(string,"Вы установили уровень администратора %s на %i", params[0], params[1]);
            send(playerid, COLOR_YELLOW, string);
        }
        else
        {
            new data[15];
            getdate(years, months, days);
            PI[params[0]][pAdmin] = params[1];
            format(data, sizeof(data), "%02d.%02d.%04d", days, months, years);
            mysql_format(dbHandle, string, sizeof(string), "INSERT INTO "T_ADMIN" (`name`, `level`, `last_connect`, `put_admin`, `data`) VALUES ('%s', %d, '%s', '%s', '%s')", GetName(params[0]), params[1], data, GetName(playerid), data);
            mysql_tquery(dbHandle, string, "", "");
            format(string, sizeof(string), "%s добавлен в список администрации. Уровень полномочий %i", GetName(params[0]), params[1]);
            SendClientMessage(playerid, COLOR_GREEN, string);
            format(string, sizeof(string), "%s добавил в список администрации %s (%i уровень)", GetName(playerid), params[0], params[1]);
        }
        return 1;
    }
    Какойто-то бред теперь в базе данных в

    PHP код:
    "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1"params[1], GetName(params[0])); 
    записуется если ток 10 уровень админки выдать.

  8. #8
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    CMD:makeadmin(playerid,params[])
    {
        new 
    giveplayerid,
            
    admin_level;
        if(
    sscanf(params,"ri"giveplayeridadmin_level))
            return 
    send(playerid,0x00BFFFAA,"[КОМАНДЫ] {FFFFFF}/makeadmin [id игрока] [админка].");

        if(
    giveplayerid == INVALID_PLAYER_ID)
            return 
    Notonline;

        if(!(
    <= admin_level <= 10))
            return 
    send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Доступные уровни админки от 1 до 10.");

        if(
    PI[giveplayerid][pAdmin])
        {
            
    f(string,"Вы установили уровень администратора %s на %i"giveplayeridadmin_level);
            
    send(playeridCOLOR_YELLOWstring);
            
    mysql_format(dbHandlestringsizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1"admin_levelGetName(giveplayerid));
        }
        else
        {
            
    format(stringsizeof(string), "%s добавлен в список администрации. Уровень полномочий %i"GetName(giveplayerid), admin_level);
            
    send(playeridCOLOR_GREENstring);

            
    getdate(yearsmonthsdays);
            
    mysql_format(dbHandlestringsizeof(string), "INSERT INTO "T_ADMIN" (`name`, `level`, `last_connect`, `put_admin`, `data`) VALUES ('%s', %d, '%02d.%02d.%04d', '%s', '%02d.%02d.%04d')"GetName(giveplayerid), admin_leveldaysmonthsyearsGetName(playerid), daysmonthsyears);
        }
        
    mysql_tquery(dbHandlestring"""");
        
    PI[giveplayerid][pAdmin] = admin_level;
        return 
    1;

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. #9
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    CMD:makeadmin(playerid,params[])
    {
        new 
    giveplayerid,
            
    admin_level;
        if(
    sscanf(params,"ri"giveplayeridadmin_level))
            return 
    send(playerid,0x00BFFFAA,"[КОМАНДЫ] {FFFFFF}/makeadmin [id игрока] [админка].");

        if(
    giveplayerid == INVALID_PLAYER_ID)
            return 
    Notonline;

        if(!(
    <= admin_level <= 10))
            return 
    send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Доступные уровни админки от 1 до 10.");

        if(
    PI[giveplayerid][pAdmin])
        {
            
    f(string,"Вы установили уровень администратора %s на %i"giveplayeridadmin_level);
            
    send(playeridCOLOR_YELLOWstring);
            
    mysql_format(dbHandlestringsizeof(string), "UPDATE "T_ADMIN" SET `level` = '%d' WHERE `name` = '%s' LIMIT 1"admin_levelGetName(giveplayerid));
        }
        else
        {
            
    format(stringsizeof(string), "%s добавлен в список администрации. Уровень полномочий %i"GetName(giveplayerid), admin_level);
            
    send(playeridCOLOR_GREENstring);

            
    getdate(yearsmonthsdays);
            
    mysql_format(dbHandlestringsizeof(string), "INSERT INTO "T_ADMIN" (`name`, `level`, `last_connect`, `put_admin`, `data`) VALUES ('%s', %d, '%02d.%02d.%04d', '%s', '%02d.%02d.%04d')"GetName(giveplayerid), admin_leveldaysmonthsyearsGetName(playerid), daysmonthsyears);
        }
        
    mysql_tquery(dbHandlestring"""");
        
    PI[giveplayerid][pAdmin] = admin_level;
        return 
    1;

    Теперь в базу данных вообще не записуется не в аккаунт не в базу админок.
    Последний раз редактировалось kala4iks; 26.10.2016 в 16:30.

  10. #10
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Выручайте. в чем может быть проблема?

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •