Выдать хилку за бонусы (скальпель)

Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)
Code_0xABC, не советуй того, в чем не разбираешься
 
Сообщения
494
Реакции
341
Помог
11 раз(а)
1. Добавить в исходник хилки следующее.

В plugin_init:
Код:
register_srvcmd("give_healthnade", "srvcmd_give_healthnade");
Где-нибудь ниже глобально:
Код:
public srvcmd_give_healthnade()
{
    new iUserID;
    iUserID = read_argv_int(1);

    new pPlayer;
    pPlayer = find_player("k", iUserID);

    if(!is_user_alive(pPlayer) || get_member(pPlayer, m_rgAmmo, AMMO_ID)) {
        return;
    }

    /*if(rg_get_current_round() < Cvar(Give_MinRound)) {
        return;
    }*/

    giveNade(pPlayer);
}
2. В bonusmenu_rbs.ini прописать:
Код:
"srvcmd"   "3"   "give_healthnade #%userid%"   ""   "0"   "0"   "лечебная граната"
 
Сообщения
29
Реакции
0
1. Добавить в исходник хилки следующее.

В plugin_init:
Код:
register_srvcmd("give_healthnade", "srvcmd_give_healthnade");
Где-нибудь ниже глобально:
Код:
public srvcmd_give_healthnade()
{
    new iUserID;
    iUserID = read_argv_int(1);

    new pPlayer;
    pPlayer = find_player("k", iUserID);

    if(!is_user_alive(pPlayer) || get_member(pPlayer, m_rgAmmo, AMMO_ID)) {
        return;
    }

    /*if(rg_get_current_round() < Cvar(Give_MinRound)) {
        return;
    }*/

    giveNade(pPlayer);
}
2. В bonusmenu_rbs.ini прописать:
Код:
"srvcmd"   "3"   "give_healthnade #%userid%"   ""   "0"   "0"   "лечебная граната"
ошибок в консоли нет, но и хилку не выдаёт.
 
Сообщения
494
Реакции
341
Помог
11 раз(а)
artursp, замени на эту функцию. После попытки выдачи скинь сюда то, что в логах будет.

Код:
public srvcmd_give_healthnade()
{
    new iUserID;
    iUserID = read_argv_int(1);

    new pPlayer;
    pPlayer = find_player("k", iUserID);

    if(!is_user_alive(pPlayer)) {
        log_amx("Хилка не выдана: не найден userid `%i` или игрок мёртв", iUserID);
        return;
    }

    if(get_member(pPlayer, m_rgAmmo, AMMO_ID)) {
        log_amx("Хилка не выдана: игрок `%n` уже имеет хилку", pPlayer);
        return;
    }

    /*if(rg_get_current_round() < Cvar(Give_MinRound)) {
        log_amx("Хилка не выдана: выдача с `%i` раунда", Cvar(Give_MinRound));
        return;
    }*/

    giveNade(pPlayer);
    log_amx("Хилка успешно выдана игроку %n", pPlayer);
}
4 Мар 2023
Для теста также можно вручную в консоль сервера ввести команду: give_healthnade userid
4 Мар 2023
Если через bonusmenu не выдастся, а через консольную команду вручную всё окей - уже вопросы к скальпелю, хз как он там шлёт команду в консоль сервера.
 
Сообщения
29
Реакции
0
artursp, замени на эту функцию. После попытки выдачи скинь сюда то, что в логах будет.

Код:
public srvcmd_give_healthnade()
{
    new iUserID;
    iUserID = read_argv_int(1);

    new pPlayer;
    pPlayer = find_player("k", iUserID);

    if(!is_user_alive(pPlayer)) {
        log_amx("Хилка не выдана: не найден userid `%i` или игрок мёртв", iUserID);
        return;
    }

    if(get_member(pPlayer, m_rgAmmo, AMMO_ID)) {
        log_amx("Хилка не выдана: игрок `%n` уже имеет хилку", pPlayer);
        return;
    }

    /*if(rg_get_current_round() < Cvar(Give_MinRound)) {
        log_amx("Хилка не выдана: выдача с `%i` раунда", Cvar(Give_MinRound));
        return;
    }*/

    giveNade(pPlayer);
    log_amx("Хилка успешно выдана игроку %n", pPlayer);
}
4 Мар 2023
Для теста также можно вручную в консоль сервера ввести команду: give_healthnade userid
4 Мар 2023
Если через bonusmenu не выдастся, а через консольную команду вручную всё окей - уже вопросы к скальпелю, хз как он там шлёт команду в консоль сервера.
Вот что в логах.
L 03/04/2023 - 15:49:04: [reapi_healthnade.amxx] Хилка не выдана: не найден userid 0 или игрок мёртв
L 03/04/2023 - 15:49:19: [reapi_healthnade.amxx] Хилка не выдана: не найден userid 0 или игрок мёртв
4 Мар 2023
нужно было убрать # и всё заработало! спасибо! 👍
"srvcmd" "10" "give_healthnade %userid%" "" "0" "2" "Хилка"
 
Последнее редактирование:
Сообщения
494
Реакции
341
Помог
11 раз(а)
artursp. тогда вывод инфы в логи можно убрать.

Код:
public srvcmd_give_healthnade()
{
    new iUserID;
    iUserID = read_argv_int(1);

    new pPlayer;
    pPlayer = find_player("k", iUserID);

    if(!is_user_alive(pPlayer) || get_member(pPlayer, m_rgAmmo, AMMO_ID)) {
        return;
    }

    /*if(rg_get_current_round() < Cvar(Give_MinRound)) {
        return;
    }*/

    giveNade(pPlayer);
}
А у скальпеля описание неправильное для конфига, получается.
 
Последнее редактирование:

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

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