Добро пожаловать на Pawno-Info.Ru - Портал о программировании v2.0

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию своим коллегам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками - то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Модификации SA

Хотите разнообразить свою игру в San Andrease? Смелее в наш раздел. Отличный сборник готовых решений. Играйте с удовольствием

[Вопрос] Помогите с /agiverank

Kirich

• Зарегистрированный •
Регистрация
19 Окт 2019
Сообщения
6
Реакции
0
Вообщем я столкнулся с такой проблемой:

PHP:
gamemodes\tentax.pwn(30631) : error 029: invalid expression, assumed zero
gamemodes\tentax.pwn(30631) : warning 215: expression has no effect
gamemodes\tentax.pwn(30631) : error 001: expected token: ";", but found "]"
gamemodes\tentax.pwn(30631) : error 029: invalid expression, assumed zero
gamemodes\tentax.pwn(30631) : fatal error 107: too many error messages on one line
Вот сам код:


PHP:
CMD:agiverank(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 5) return true;
    if(sscanf(params, "dd",params[0],params[1])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /agiverank [id игрока] [уровень (1 - 15)]");
    if(params[1] > 15 || params[1] < 0) return SendClientMessage(playerid, COLOR_GREY, "Не мене 0 и не более 15!");
    if(!IsPlayerConnected(params[0])) return true;
    PlayerInfo[params[0]][pRank] = params[1];
    if(PlayerInfo[params[0]][pRank] > [params[1]][pRank]);
        format(stringer1, sizeof(stringer1), "Вы были повышены в ранге администратором %s",PlayerInfo[playerid][pNames]);
        SendClientMessage(params[0], 0xFF5030FF, stringer1);
        format(stringer1, sizeof(stringer1), "Вы повысили %s до %i ранга.",PlayerInfo[params[0]][pNames],params[1]);
        SendClientMessage(playerid, COLOR_LIGHTBLUE, stringer1);
    else format(stringer1, sizeof(stringer1), "Вы были понижены в ранге администратором %s",PlayerInfo[playerid][pNames]);
        SendClientMessage(params[0], 0xFF5030FF, stringer1);
        format(stringer1, sizeof(stringer1), "Вы понизили %s до %i ранга.",PlayerInfo[params[0]][pNames],params[1]);
        SendClientMessage(playerid, COLOR_LIGHTBLUE, stringer1);
    return true;
}
 

Pa4enka

Участник форума
Пользователь
Регистрация
26 Май 2017
Сообщения
255
Реакции
49
Адрес
Украина, Сумы
PHP:
new valid_rank = PlayerInfo[params[0]][pRank];
PlayerInfo[params[0]][pRank] = params[1];
if(PlayerInfo[params[0]][pRank] > valid_rank)
{
    // format + scm повышен
} else {
    // format + scm понижен
}
Изучи информацию о том как работать с условиями и массивами. И на самом деле, можно эту команду переписать получше, но, увы, я с телефона.
 

iWors

Профессионал
Ветеран - PI
Регистрация
3 Июн 2015
Сообщения
5,621
Реакции
737
  • Верность PI
  • Спасибо от администрации
  • OLD
Код:
CMD:agiverank(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 5)
        return true;

    if(sscanf(params, "dd", params[0], params[1]))
        return SendClientMessage(playerid, -1, !"Используйте: /agiverank [id игрока] [ранг (от 0 до 15)");

    if(0 == IsPlayerConnected(params[0]))
        return SendClientMessage(playerid, -1, !"Такого игрока нет на сервере.");

    if(!(0 <= params[1] <= 15))
        return SendClientMessage(playerid, -1, !"Неверный идентификатор установленного ранга (от 0 до 15).");

    
    new rang = PlayerInfo[params[0]][pRank];
    PlayerInfo[params[0]][pRank] = rang;
    if(PlayerInfo[params[0]][pRank] > rang)
    {
        format(stringer1, sizeof(stringer1), "Вы были повышены в ранге администратором %s", PlayerInfo[playerid][pNames]);
        SendClientMessage(params[0], 0xFF5030FF, stringer1);
        format(stringer1, sizeof(stringer1), "Вы повысили %s до %i ранга.", PlayerInfo[params[0]][pNames], params[1]);
        SendClientMessage(playerid, COLOR_LIGHTBLUE, stringer1);
    }
    else
    {
        format(stringer1, sizeof(stringer1), "Вы были понижены в ранге администратором %s", PlayerInfo[playerid][pNames]);
        SendClientMessage(params[0], 0xFF5030FF, stringer1);
        format(stringer1, sizeof(stringer1), "Вы понизили %s до %i ранга.", PlayerInfo[params[0]][pNames], params[1]);
        SendClientMessage(playerid, COLOR_LIGHTBLUE, stringer1);
    }
    return true;
}
 
Последнее редактирование:

Kirich

• Зарегистрированный •
Регистрация
19 Окт 2019
Сообщения
6
Реакции
0
Код:
CMD:agiverank(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 5)
        return true;

    new
        targetid = strval(params),
        rang = PlayerInfo[targetid][pRank];

    if(isnull(params))
        return SendClientMessage(playerid, -1, !"Используйте: /agiverank [id игрока] [ранг (от 0 до 15)");

    if(0 == IsPlayerConnected(targetid))
        return SendClientMessage(playerid, -1, !"Такого игрока нет на сервере.");

    if(!(0 <= rang <= 15))
        return SendClientMessage(playerid, -1, !"Неверный идентификатор установленного ранга (от 0 до 15).");

    PlayerInfo[targetid][pRank] = rang;
    if(PlayerInfo[targetid][pRank] > rang)
    {
        format(stringer1, sizeof(stringer1), "Вы были повышены в ранге администратором %s", PlayerInfo[playerid][pNames]);
        SendClientMessage(targetid, 0xFF5030FF, stringer1);
        format(stringer1, sizeof(stringer1), "Вы повысили %s до %i ранга.", PlayerInfo[targetid][pNames], rang);
        SendClientMessage(playerid, COLOR_LIGHTBLUE, stringer1);
    }
    else
    {
        format(stringer1, sizeof(stringer1), "Вы были понижены в ранге администратором %s", PlayerInfo[playerid][pNames]);
        SendClientMessage(targetid, 0xFF5030FF, stringer1);
        format(stringer1, sizeof(stringer1), "Вы понизили %s до %i ранга.", PlayerInfo[targetid][pNames], rang);
        SendClientMessage(playerid, COLOR_LIGHTBLUE, stringer1);
    }
    return true;
}
Благодарю всех, но использовал я вот этот код и он работает. Спасибо.
 

Pa4enka

Участник форума
Пользователь
Регистрация
26 Май 2017
Сообщения
255
Реакции
49
Адрес
Украина, Сумы
Код:
CMD:agiverank(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 5)
        return true;

    new
        targetid = strval(params),
        rang = PlayerInfo[targetid][pRank];

    if(isnull(params))
        return SendClientMessage(playerid, -1, !"Используйте: /agiverank [id игрока] [ранг (от 0 до 15)");

    if(0 == IsPlayerConnected(targetid))
        return SendClientMessage(playerid, -1, !"Такого игрока нет на сервере.");

    if(!(0 <= rang <= 15))
        return SendClientMessage(playerid, -1, !"Неверный идентификатор установленного ранга (от 0 до 15).");

    PlayerInfo[targetid][pRank] = rang;
    if(PlayerInfo[targetid][pRank] > rang)
    {
        format(stringer1, sizeof(stringer1), "Вы были повышены в ранге администратором %s", PlayerInfo[playerid][pNames]);
        SendClientMessage(targetid, 0xFF5030FF, stringer1);
        format(stringer1, sizeof(stringer1), "Вы повысили %s до %i ранга.", PlayerInfo[targetid][pNames], rang);
        SendClientMessage(playerid, COLOR_LIGHTBLUE, stringer1);
    }
    else
    {
        format(stringer1, sizeof(stringer1), "Вы были понижены в ранге администратором %s", PlayerInfo[playerid][pNames]);
        SendClientMessage(targetid, 0xFF5030FF, stringer1);
        format(stringer1, sizeof(stringer1), "Вы понизили %s до %i ранга.", PlayerInfo[targetid][pNames], rang);
        SendClientMessage(playerid, COLOR_LIGHTBLUE, stringer1);
    }
    return true;
}
Разве rang не должен устанавливаться игроком в этой команде? Без sscanf или условного extract тут не обойтись, ведь параметр не только ид, но и ранг))
 

iWors

Профессионал
Ветеран - PI
Регистрация
3 Июн 2015
Сообщения
5,621
Реакции
737
  • Верность PI
  • Спасибо от администрации
  • OLD
Разве rang не должен устанавливаться игроком в этой команде? Без sscanf или условного extract тут не обойтись, ведь параметр не только ид, но и ранг))
Внатуре, не заметил, чисто основу скопировал, а дальше его часть кода
 

Pa4enka

Участник форума
Пользователь
Регистрация
26 Май 2017
Сообщения
255
Реакции
49
Адрес
Украина, Сумы
Внатуре, не заметил, чисто основу скопировал, а дальше его часть кода
PHP:
new rang = PlayerInfo[params[0]][pRank];
PlayerInfo[params[0]][pRank] = rang;
Установим тот же ранг, хех?)
= params[1];

Изначально же рабочий и хороший код был у тебя. А щас опять парамсы вернул.
 

iWors

Профессионал
Ветеран - PI
Регистрация
3 Июн 2015
Сообщения
5,621
Реакции
737
  • Верность PI
  • Спасибо от администрации
  • OLD
PHP:
new rang = PlayerInfo[params[0]][pRank];
PlayerInfo[params[0]][pRank] = rang;
Установим тот же ранг, хех?)
= params[1];

Изначально же рабочий и хороший код был у тебя. А щас опять парамсы вернул.
это не я)))
 

Pa4enka

Участник форума
Пользователь
Регистрация
26 Май 2017
Сообщения
255
Реакции
49
Адрес
Украина, Сумы

Пользователи онлайн

Сейчас на форуме нет ни одного пользователя.

Реклама

shape1
shape2
shape3
shape4
shape7
shape8
Сверху