Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама



**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 100руб/мес, Текстовая 50руб/мес.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 13
  1. #1
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    216
    Репутация:
    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
    Сообщений
    216
    Репутация:
    0 ±
    Выручайте

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

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

    UPD: Далее ты в БД всё же загрузил ему lvl, но тут ещё вопрос возникает, а не стоит ли у тебя сейв при выходе,
    и тут момент, у тебя на сервере он как ноль, а в БД записался, но ты ведь не загрузил с БД а перезаписал на ноль
    Последний раз редактировалось vovandolg; 14.10.2016 в 15:15.
    [Античит] Invisible Fly Hack
    [Античит] Weapon/Ammo Hack
    [Function] ResetPlayerWeaponSlot
    [Function] FIX_SetPlayerAmmo

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

    Статус
    Онлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    2,751
    Репутация:
    1085 ±
    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
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    216
    Репутация:
    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
    Адрес
    В комнате у твоей мамки
    Сообщений
    14
    Репутация:
    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
    Сообщений
    216
    Репутация:
    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
    Адрес
    Восточный Мордор
    Сообщений
    2,751
    Репутация:
    1085 ±
    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;

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    216
    Репутация:
    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
    Сообщений
    216
    Репутация:
    0 ±
    Выручайте. в чем может быть проблема?

 

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

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

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

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

Ваши права

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