Функция ReAPI

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
702
Реакции
54
Т.к нельзя запретить подымать только своё оружие, приходится блокировать полностью поднятие, кроме бомбы конечно и появилась нужда в другом.
Собсна заблокирован подьём и нужна возможность выбрасывать только бомбу или щит, собсна, я и попытался это реализовать, только вот с бомбой не очень вышло, есть лучше способ, чем мой?
Код:
if (IsCorrectWeapon(iPlayer, WEAPON_C4)) {
        rg_drop_item(iPlayer, "weapon_c4");
       
        PrintToChat(iPlayer, "Вы выбросили бомбу");
        return PLUGIN_HANDLED;
    }
   
    if (rg_has_item_by_name(iPlayer, "weapon_shield")) {
        rg_remove_item(iPlayer, "weapon_shield");
       
        PrintToChat(iPlayer, "Вы выбросили щит");
        return PLUGIN_HANDLED;
    }
Надо именно что бомбу, которую держит в руках, а не проверку, на "есть ли бомба у игрока", а то у меня ругается почему на мою "реализацию"
Код:
L 04/23/2020 - 16:23:53: Info (map "de_inferno") (file "addons/amxmodx/logs/error_20200423.log")
L 04/23/2020 - 16:23:53: [ReAPI] get_member: invalid or uninitialized entity
L 04/23/2020 - 16:23:53: [AMXX] Displaying debug trace (plugin "bm_skills.amxx", version "2.1 lite")
L 04/23/2020 - 16:23:53: [AMXX] Run time error 10: native error (native "get_member")
L 04/23/2020 - 16:23:53: [AMXX]    [0] bm_skills.sma::IsCorrectWeapon (line 966)
L 04/23/2020 - 16:23:53: [AMXX]    [1] bm_skills.sma::@block_drop (line 192)
p.s. Мне надо что, если есть в руках бомба - то выбросить бомбу, если же у вас есть щит, то выбросить щит, а если нет ничего, то я там сообщение вывожу :)
 
Последнее редактирование:
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
Сообщения
702
Реакции
54
fl0wer, фулл код чего? Это и весь код практически, не хватает только була IsCorrectWeapon. Вот он:
Код:
bool:IsCorrectWeapon(iPlayer, WeaponIdType:iWeaponId)
{
    new iActiveItem = get_member(iPlayer, m_pActiveItem); // это и есть 966 строчка

    if (iActiveItem == NULLENT)
        return false;

    if (get_member(iActiveItem, m_iId) != iWeaponId)
        return false;

    return true;
}
Фулл код блока:
Код:
@block_drop(iPlayer) {
    if (IsCorrectWeapon(iPlayer, WEAPON_C4)) {
        rg_drop_item(iPlayer, "weapon_c4");
        
        PrintToChat(iPlayer, "Вы выбросили бомбу");
        return PLUGIN_HANDLED;
    }
    
    if (rg_has_item_by_name(iPlayer, "weapon_shield")) {
        rg_remove_item(iPlayer, "weapon_shield");
        
        PrintToChat(iPlayer, "Вы выбросили щит");
        return PLUGIN_HANDLED;
    }
    
    PrintToChat(iPlayer, "НЕЛЬЗЯ ВЫБРОСИТЬ - потому что оружие не подбирается!");
    amxclient_cmd(iPlayer, "shop");
    
    return PLUGIN_HANDLED;
}
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
Сообщения
702
Реакции
54
fl0wer,
Код:
new iActiveItem = get_member(iPlayer, m_pActiveItem); // это и есть 966 строчка
Код:
if (IsCorrectWeapon(iPlayer, WEAPON_C4)) {
Мембер его не устраивает.
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
ну значит игрок невалидный.
 
Сообщения
702
Реакции
54
fl0wer, проверка на коннект?
p.s. хотя тут даже на живого лучше будет проверить
 
Сообщения
1,701
Реакции
1,512
Помог
26 раз(а)
только вот с бомбой не очень вышло, есть лучше способ, чем мой
Зарегать для пушек (кроме с4) Ham_CS_Item_CanDrop и вернуть фалс, если у игрока не m_bOwnsShield. Тогда будет деф.сообщение о том что нельзя выбросить пушки.
 
Сообщения
702
Реакции
54
Спасибо. В принципе, что надо, я узнал, можно закрывать!
 
Статус
В этой теме нельзя размещать новые ответы.

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

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