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

Как перехватить выстрел и отменить?

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Как перехватить выстрел и отменить?

Сообщение fixteam » 01 апр 2019, 12:01

Как отследить, перехватить и отменить выстрел? То есть не просто урон от выстрела, а именно саму "пулю" отменить со всеми вытекающими (с декалами выстрела и тд). То есть просто его отменить, как будто игрок и не стрелял.
Аватара пользователя
fixteam
 
Сообщения: 168
Зарегистрирован: 19 фев 2018, 20:08
Откуда: Москва
Благодарил (а): 28 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, C++, Python, Js, Php

Re: Как перехватить выстрел и отменить?

Сообщение артист666 » 01 апр 2019, 18:15

Много способов есть, через:
Ham_Weapon_PrimaryAttack
Ham_Weapon_SecondaryAttack
Ham_TraceAttack

Так же блокировка в финке:
Код: Выделить всё
#include <amxmodx>
#include <fakemeta>

public plugin_init()
{
    register_forward(FM_PlayerPreThink, "player_think")
    register_forward(FM_UpdateClientData, "update_client_data", 1)
}
public update_client_data(id, send, handle)
{
    set_cd(handle, CD_flNextAttack, get_gametime() + 0.001)
}
public player_think(id)
{
    static button; button = pev(id, pev_button)
    
    if
(button & IN_ATTACK) set_pev(id, pev_button, button &~ IN_ATTACK)
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Как перехватить выстрел и отменить?

Сообщение fixteam » 02 апр 2019, 23:15

Через Ham_TraceAttackкак? Подсказать можешь?

Добавлено спустя 13 минут:
Ham_TraceAttack
Но не через финк.
Можете способ показать?
Аватара пользователя
fixteam
 
Сообщения: 168
Зарегистрирован: 19 фев 2018, 20:08
Откуда: Москва
Благодарил (а): 28 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, C++, Python, Js, Php


Вернуться в Скриптинг

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 7