Throw knife

Throw knife 1.0.0

Нет прав для скачивания
Сообщения
6
Реакции
11
В данном плагине отсутствует сценарий работы с щитом. Получается, что при получении(покупке/подъёме) щита в руках его не видно, но в тоже время он работает, таким образом получается трудно пробиваемый "маньяк" с ножом:crazy: ? (или без).
Пока не появилось обновления(если оно будет), можно воспользоваться следующими правками:
Находим:
Код:
#define PLUGIN_AUTHOR "medusa"
После добавляем:
Код:
const OFFSET_SHIELD = 510
const HAS_SHIELD = (1<<24)
#define get_user_shield(%1) (get_pdata_int(%1, OFFSET_SHIELD) & HAS_SHIELD) ? 1 : 0
Находим:
Код:
new const HANDS_VIEW_MODEL[] = "models/throw_knife/v_hands.mdl";
После добавляем:
Код:
new const HANDS_SHIELD_V_MODEL[] = "models/throw_knife/v_shield_hands.mdl";
new const HANDS_SHIELD_P_MODEL[] = "models/throw_knife/p_shield_hands.mdl";
Находим:
Код:
precache_model(HANDS_VIEW_MODEL);
После добавляем:
Код:
precache_model(HANDS_SHIELD_V_MODEL);
precache_model(HANDS_SHIELD_P_MODEL);
Находим:
Код:
public Ham_Knife_Deploy_Post(weapon)
{
    /*if(is_nullent(weapon))
    {
        return;
    }*/

    new id = get_member(weapon, m_pPlayer);

    if (g_eKnifeState[id] == KNIFE_STATE_HANDS)
    {
        set_entvar(id, var_viewmodel, HANDS_VIEW_MODEL);
        set_entvar(id, var_weaponmodel, "");
        //return;
    }
    else
    {
        set_entvar( id, var_viewmodel, THROW_KNIFE_VIEW_MODEL );
        set_entvar( id, var_weaponmodel, THROW_KNIFE_WORLD_MODEL );
        //set_member( weapon, m_flLastEventCheck, get_gametime( ) + 0.2 );
    }

      
}
Заменяем на:
Код:
public Ham_Knife_Deploy_Post(weapon)
{
    new id = get_member(weapon, m_pPlayer);
    new shield = get_user_shield(id);

    if (g_eKnifeState[id] == KNIFE_STATE_HANDS)
    {
        set_entvar(id, var_viewmodel, (shield) ? (HANDS_SHIELD_V_MODEL) : (HANDS_VIEW_MODEL));
        set_entvar(id, var_weaponmodel, (shield) ? (HANDS_SHIELD_P_MODEL) : (""));
    }
    else
    {
        if (!shield)
        {
            set_entvar( id, var_viewmodel, THROW_KNIFE_VIEW_MODEL );
            set_entvar( id, var_weaponmodel, THROW_KNIFE_WORLD_MODEL );
        }
    }
}
Находим:
Код:
public Command_Drop(id)
{
После добавляем:
Код:
if (get_user_shield(id)) return PLUGIN_CONTINUE;
Находим:
Код:
if (GetWeaponId(iToucher) == WEAPON_KNIFE)
{
    set_entvar(iToucher, var_viewmodel, THROW_KNIFE_VIEW_MODEL);
    set_entvar(iToucher, var_weaponmodel, THROW_KNIFE_WORLD_MODEL);
}
Заменяем на:
Код:
if (GetWeaponId(iToucher) == WEAPON_KNIFE)
{
    if (!get_user_shield(iToucher))
    {
        set_entvar(iToucher, var_viewmodel, THROW_KNIFE_VIEW_MODEL);
        set_entvar(iToucher, var_weaponmodel, THROW_KNIFE_WORLD_MODEL);
    }
    else
    {
        new iActiveItem = get_member(iToucher, m_pActiveItem)
        if(iActiveItem > 0) ExecuteHamB(Ham_Item_Deploy, iActiveItem)
    }
}
Модельки взяты стандартные, просто удален нож.
 

Вложения

Сообщения
330
Реакции
-24
Автор, добавь доступ по флагу
Не будет он обновлять и добавлять это. Это он ответил мне. Обратитесь к скриптерам если не умеете, или сделайте сами. Это занимает 5 минут. Так же поступил и все отлично.
 
Сообщения
1,561
Реакции
1,573
Помог
2 раз(а)
@SviN,Очень хорошее решение - честно
Я вот в своё время долго думал над своими Мечами и мне даже в голову не приходила идея,что можно у моделей Щитов удалить нож и попросту давать пустые руки со Щитом после дропа всех ножей

А вот как обстоят дела в этом плагине?
С одним ножом для броска вместе со Щитом мне понятна ситуация
А если к примеру есть не один нож для броска,а два ( при этом в руках Щит ) и когда бросил первый нож, - модель Щита с ножом тебе возвращает в руки ?
 
Последнее редактирование:
Сообщения
6
Реакции
11
Дело в том, что в стандартном сценарии мы не можем выкинуть пистолет, если есть щит. Щит выбрасывается первым. Получается и нож бросить не можем, сначала щит.
 
Сообщения
1,561
Реакции
1,573
Помог
2 раз(а)
Дело в том, что в стандартном сценарии мы не можем выкинуть пистолет, если есть щит. Щит выбрасывается первым. Получается и нож бросить не можем, сначала щит.
Да,но я больше сейчас о том,если бросок не на G, а на Е
И без этого в public Command_Drop(id)
if (get_user_shield(id)) return PLUGIN_CONTINUE;

Получается в руках Щит,мы бросаем нож - нам показывает Анимацию броска ножа ( да,можно закрыть эту анимацию лично для щита,но..пока не будем .. )) уже без Щита,и что-бы сново увидеть Щит - нужно перейти в не юзающий слот ( обновить ))
Тоесть я о том,что после броска нужно давать щит в руки как бы повторно
Также есть баг с этим самым обновлением ( это уже сейчас к примеру )
В руках Щит и есть ножи для броска или же пустые руки со Щитом - конец Раунда и...в новом опять Щита нет ( ну тут понятно ,что в спавне нам даёт )
Ну и последнее насчёт Веапонлиста
Если юзать плагин Спрайтов победы и подобного рода - то после первого показа спрайтишка) у ножа исчезнет веапонлистовка до следующей карты

Вроде как всё - я ещё побьюсь над своим этим всем вариантом - может удастся сделать полноценный кидающий меч со Щитом
Потом поделюсь как и что сделал...
 
Сообщения
3,056
Реакции
1,739
Помог
80 раз(а)
если ошибка:
L 03/30/2022 - 18:12:40: [ReAPI] get_member_s: invalid or uninitialized entity
L 03/30/2022 - 18:12:40: [AMXX] Displaying debug trace (plugin "throw_knife.amxx", version "1.0.0")
L 03/30/2022 - 18:12:40: [AMXX] Run time error 10: native error (native "get_member_s")
L 03/30/2022 - 18:12:40: [AMXX] [0] throw_knife.sma::GetWeaponId (line 526)
L 03/30/2022 - 18:12:40: [AMXX] [1] throw_knife.sma::Command_Drop (line 326)
решение:

Код:
public Command_Drop(id)
{
     if(!is_user_alive(id))
     {
        return PLUGIN_HANDLED;
     }
Добавьте проверку после строки 526 и протестируйте.
 
Сообщения
130
Реакции
7
I noticed something strange about this plugin. When I swing my right fist, the model stops working until I press the left button. Is that the case with you?
 
Сообщения
130
Реакции
7
Простите, не мог бы кто-нибудь показать мне, как я могу метать эти ножи только в прямом направлении, потому что теперь мои сильно летят в стороны и я не могу никого поразить?
 
Сообщения
1,561
Реакции
1,573
Помог
2 раз(а)
Простите, не мог бы кто-нибудь показать мне, как я могу метать эти ножи только в прямом направлении, потому что теперь мои сильно летят в стороны и я не могу никого поразить?
А что нужно?
Что-бы нож долетал с любого расстояния точно в цель по прицелу?
 
Сообщения
130
Реакции
7
Ну, я даже не могу поразить их с близкого расстояния сейчас. И я хотел попробовать, можно ли заставить их летать в самый раз, но я не знаю, как это сделать.
 
Сообщения
67
Реакции
1
Помог
1 раз(а)
Доброй ночи!
Прошу прощения, подскажите как сделать выдачу ножей не при начале раунда, а при возрождении?
Что нужно заменить в коде?

Заранее спасибо
 

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

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