Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для Mike World
    Пользователь

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

    Почему не срабатывает второе условие?

    Всем привет! С прошедшими праздниками всех!)
    Я тут пишу /setmoder - выдать права администратора, да вот такая дичь вышла, что срабатывает только ПЕРВОЕ условие проверки игрока на уровень админ-прав, а не второе.
    Голову ломаю, решил к вам обратиться!) Одна голова хорошо, а две еще лучше :)

    Вот собственно сам код:
    PHP код:
    CMD:setmoder(playeridparams[])
    {
        if(
    strcmp(GN(playerid), ADM_DEVtrue)) return SCM(playeridCOLOR_GREY"У вас нет доступа!");
        if(
    sscanf(params"dd"params[0], params[1])) return SCM(playeridCOLOR_GREY"Подсказка: /setmoder [id] [lvl]");
    //    if(!pLogin[params[0]]) return SCM(playerid, COLOR_GREY, "Игрок не авторизован!");
    //    if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, "Игрок не в сети!");
        
    if(PlayerInfo[params[0]][Adm_level] <= 0)
        {
            static const 
    fmt_str[] = "INSERT INTO `moderator` (`name`, `alevel`) VALUES ('%s', '%d')";
            new 
    query[sizeof(fmt_str)+(-2+MAX_PLAYER_NAME)+(-2+2)];
            
    format(querysizeof(query), fmt_strGN(params[0]), params[1]);
            
    mysql_tquery(dbHandlequery"""");

            static const 
    fmt_say[] = "Вы выдали админ-права %d-уровня игроку %s!";
            new 
    str[sizeof(fmt_say)+(-2+2)+(-2+MAX_PLAYER_NAME)];
            
    format(strsizeof(str), fmt_sayparams[1], GN(params[0]));
            
    SCM(playerid, -1str);
        }
        else if(
    PlayerInfo[params[0]][Adm_level] >= 1)
        {
            static const 
    fmt_str[] =
            
    "\
                UPDATE `moderator` SET `name` = '%s',\
                `alevel` = '%d' LIMIT 1\
            "
    ;
            new 
    query[sizeof(fmt_str)+(-2+MAX_PLAYER_NAME)+(-2+2)];
            
    format(querysizeof(query), fmt_strGN(params[0]), params[1]);
            
    mysql_tquery(dbHandlequery"""");

            static const 
    fmt_say[] = "Вы изменили  уровень админ-прав на %d игроку %s!";
            new 
    str[sizeof(fmt_say)+(-2+2)+(-2+MAX_PLAYER_NAME)];
            
    format(strsizeof(str), fmt_sayparams[1], GN(params[0]));
            
    SCM(playerid, -1str);
        }
        return 
    1;

    Последний раз редактировалось Mike World; 17.01.2018 в 20:52. Причина: Неправильно указал название темы

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

    Статус
    Оффлайн
    Регистрация
    06.03.2017
    Сообщений
    82
    Репутация:
    0 ±
    Проверил, все работает. Может у тебя значение PlayerInfo[params[0]][Adm_level] не меняется нигде?

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

    Статус
    Оффлайн
    Регистрация
    28.12.2017
    Сообщений
    15
    Репутация:
    0 ±
    if(PlayerInfo[params[0]][Adm_level] == 0)
    {
    ....
    }
    else
    {
    ...
    }
    Можно вот так попробовать

  4. #4
    Аватар для Mike World
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.01.2018
    Сообщений
    31
    Репутация:
    0 ±
    Спасибо тебе большое)
    Настолько замотался, что уже глаза разбегались и забыл поставить PlayerInfo[params[0]][Adm_level] = strval(params[1]);
    А вот и рабочий наконец-таки код
    PHP код:
    CMD:setmoder(playeridparams[])
    {
        if(
    strcmp(GN(playerid), ADM_DEVtrue)) return SCM(playeridCOLOR_GREY"У вас нет доступа!");
        if(
    sscanf(params"dd"params[0], params[1])) return SCM(playeridCOLOR_GREY"Подсказка: /setmoder [id] [lvl]");
    //    if(!pLogin[params[0]]) return SCM(playerid, COLOR_GREY, "Игрок не авторизован!");
    //    if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, "Игрок не в сети!");
        
    if(PlayerInfo[params[0]][Adm_level] <= 0)
        {
            static const 
    fmt_str[] = "INSERT INTO `moderator` (`name`, `alevel`) VALUES ('%s', '%d')";
            new 
    query[sizeof(fmt_str)+(-2+MAX_PLAYER_NAME)+(-2+2)];
            
    format(querysizeof(query), fmt_strGN(params[0]), params[1]);
            
    mysql_tquery(dbHandlequery"""");

            static const 
    fmt_say[] = "Вы выдали админ-права %d-уровня игроку %s!";
            new 
    str[sizeof(fmt_say)+(-2+2)+(-2+MAX_PLAYER_NAME)];
            
    format(strsizeof(str), fmt_sayparams[1], GN(params[0]));
            
    SCM(playerid, -1str);
            
            
    PlayerInfo[params[0]][Adm_level] = strval(params[1]);
        }
        else if(
    PlayerInfo[params[0]][Adm_level] >= 1)
        {
            static const 
    fmt_str[] =
            
    "\
                UPDATE `moderator` SET `name` = '%s',\
                `alevel` = '%d' LIMIT 1\
            "
    ;
            new 
    query[sizeof(fmt_str)+(-2+MAX_PLAYER_NAME)+(-2+2)];
            
    format(querysizeof(query), fmt_strGN(params[0]), params[1]);
            
    mysql_tquery(dbHandlequery"""");

            static const 
    fmt_say[] = "Вы изменили  уровень админ-прав на %d игроку %s!";
            new 
    str[sizeof(fmt_say)+(-2+2)+(-2+MAX_PLAYER_NAME)];
            
    format(strsizeof(str), fmt_sayparams[1], GN(params[0]));
            
    SCM(playerid, -1str);
        }
        return 
    1;

    - - - Добавлено - - -

    Можно закрывать данную тему!
    I love box, thank you my coach ...

 

 

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

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

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

Ваши права

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