Русское сообщество по скриптингу

[ZP] Extra Item: FreeShoots

Утвержденные плагины для AMX Mod X администратором/модератором форума.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только работоспособных плагинов для AMX Mod X. Новые плагины нужно выкладывать в разделе "Новые плагины".

Re: [ZP] Extra Item: FreeShoots

Сообщение fl0wer » 04 мар 2020, 03:49

О да господи, зачем проверять валидность энтити у которой вызывается вирт.функция? Зачем проверять валидность игрока? Зачем брать его через овнера, если есть оффсет? Приведите хоть один пример когда пушка или игрок будет не валиден. Кик в примари атак пре не предлагать потому что это супер-глупо.

Добавлено спустя 19 минут 50 секунд:
Забайтили. Немного хардкорно, но пойдет, ибо хз на чем это запускать будут.

Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>

new bool:g_bFreeShots[33];

new g_iItem_FreeShots;

public plugin_init()
{
    register_plugin("[ZP] Extra: FreeShoots", "1.0", "fl0wer");
    
    register_event
("HLTV", "@EV_RoundStart", "a", "1=0", "2=0");

    g_iItem_FreeShots = zp_register_extra_item("Точная стрельба", 6, ZP_TEAM_HUMAN);
    
    for 
(new i = CSW_P228, weaponName[24]; i <= CSW_P90; i++)
    {
        if ((1<<i) & ((1<<CSW_KNIFE | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_SMOKEGRENADE | 1<<CSW_C4)))
            continue;

        if (!get_weaponname(i, weaponName, charsmax(weaponName)))
            continue;

        RegisterHam(Ham_Weapon_PrimaryAttack, weaponName, "@CWeapon_PrimaryAttack_Post", true);
    }
}

public client_putinserver(id)
{
    g_bFreeShots[id] = false;
}

@
EV_RoundStart()
{
    arrayset(g_bFreeShots, false, sizeof(g_bFreeShots));
}

public zp_user_infected_post(id)
{
    g_bFreeShots[id] = false;
}

public zp_extra_item_selected(id, item)
{
    if (item != g_iItem_FreeShots)
        return PLUGIN_CONTINUE;
 
    if 
(g_bFreeShots[id]) 
    
{
        client_print(id, print_chat, "Больше нельзя купить");
        return ZP_PLUGIN_HANDLED; 
    
}
 
    g_bFreeShots
[id] = true;
    client_print(id, print_chat, "Вы купили Свободную стрельбу");
    return PLUGIN_CONTINUE;
}

@
CWeapon_PrimaryAttack_Post(id)
{
    new player = get_pdata_cbase(id, 41, 4);

    if (!g_bFreeShots[player])
        return;
 
    set_pev
(player, pev_punchangle, Float:{ 0.0, 0.0, 0.0 });
    set_pdata_int(id, 51, get_pdata_int(id, 51, 4) + 1, 4);
}
 
Аватара пользователя
fl0wer
 
Сообщения: 1687
Зарегистрирован: 27 фев 2011, 21:35
Откуда: Россия, Ижевск
Благодарил (а): 240 раз.
Поблагодарили: 508 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++, Java, PAWN

Re: [ZP] Extra Item: FreeShoots

Сообщение BaHeK » 05 мар 2020, 09:33

От магических чисел еще бы избавиться

[spoiler]Я VS VolksWagen POLO, МКАД
Психанул или моя русская рулетка
http://cs618330.vk.me/v618330946/8c16/hEeTVyYjCZw.jpg - Ой как плохо поступил[/spoiler]
Аватара пользователя
BaHeK
Скриптер
 
Сообщения: 544
Зарегистрирован: 26 авг 2011, 19:32
Откуда: Москва
Благодарил (а): 403 раз.
Поблагодарили: 261 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: [ZP] Extra Item: FreeShoots

Сообщение fl0wer » 05 мар 2020, 20:48

BaHeK писал(а):От магических чисел еще бы избавиться

На реапи бы и не париться насчет них.
Аватара пользователя
fl0wer
 
Сообщения: 1687
Зарегистрирован: 27 фев 2011, 21:35
Откуда: Россия, Ижевск
Благодарил (а): 240 раз.
Поблагодарили: 508 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++, Java, PAWN

Пред.

Вернуться в Утвержденные плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14