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

Antiflash, индекс инициатора и работа с ним

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

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

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

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

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

Antiflash, индекс инициатора и работа с ним

Сообщение nemec21 » 11 мар 2017, 12:59

Скачал плагин антифлеш. Вот обясните нужно ли повторение. и что оно дас. и чтобудетесли без него

Код: Выделить всё
public event_flashsmokepuff()
{
    set_task(0.05,"reset_flasher")
    return PLUGIN_CONTINUE   

Неинформативное название темы (исправлено) // Subb98
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Antiflash, индекс инициатора и работа с ним

Сообщение NEoMASTERR » 11 мар 2017, 13:17

1. Что находится в reset_flasher?
2. set_task не сработает за 0.05 сек, минимум 0.1. Даже если меньше поставить
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Antiflash, индекс инициатора и работа с ним

Сообщение nemec21 » 11 мар 2017, 13:19

Код: Выделить всё
public reset_flasher()
{
 
    g_flasher 
= 0


Добавлено спустя 21 секунду:
я так понимаю обнуляет
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Antiflash, индекс инициатора и работа с ним

Сообщение NEoMASTERR » 11 мар 2017, 13:20

Для полного блокирования флешек достаточно
Код: Выделить всё
register_message(get_user_msgid("ScreenFade"), "event_flash")

public event_flash(msg_id, msg_dest, ent)
{
    return PLUGIN_HANDLED
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Antiflash, индекс инициатора и работа с ним

Сообщение nemec21 » 11 мар 2017, 13:28

мне не нужно блокировать флешки

Добавлено спустя 44 секунды:
вот полный код

Добавлено спустя 1 минуту 21 секунду:
Код: Выделить всё
#include <amxmodx>
#include <fakemeta>

#define TEMPENTITY    "23"
#define BLINDED_FULLY    255
#define BLINDED_PARTLY    200  

#if !defined MAX_PLAYERS
    #define MAX_PLAYERS 32
#endif

new Float:FLASH_TIMER = 1.52 
new g_flasher 
= 0 
new g_TeamFlash
[MAX_PLAYERS+1]

public plugin_init()
{
 
    register_plugin
( "Team Flash", "1.0", "111")
                                                     
    register_event
("ScreenFade", "event_blinded", "be", "4=255", "5=255", "6=255", "7>199")
    register_event(TEMPENTITY, "event_flashsmokepuff", "a", "1=5", "6=25", "7=6")
    register_forward(FM_SetModel, "forward_setmodel")
}
                                                       

public event_blinded
(const ID)
{
    new alpha = read_data(7)                                                                         
    if
(alpha != BLINDED_FULLY && alpha != BLINDED_PARTLY || !is_user_alive(ID))
        return 
        
    if
(get_user_team(ID) == get_user_team(g_flasher) && ID != g_flasher)
    {                                                                                               
        new flasher
[32]                                   
        get_user_name
(g_flasher, flasher, 31)                                                  
        ChatColor
(ID, "^3[ ^4Immortal_classic 18+ ^3] ^1òåáÿ îñëåïèë: ^3%s", flasher) 
        
        if
(!(++g_TeamFlash[g_flasher] % 3)) 
        
{                                             
           
//code                       
        }        
    
} 
}
 

public event_flashsmokepuff
()
{
                                    
    set_task
(0.05,"reset_flasher")
    return PLUGIN_CONTINUE   
}                                                                         
                                     
public reset_flasher
()
{
 
    g_flasher 
= 0
} 
                                                                   
public get_flasher
(id)
{
    g_flasher = (id - 524627)
}
  

public forward_setmodel
(const ENTITY, model[])
{
    if(!equal(model, "models/w_flashbang.mdl"))
        return FMRES_IGNORED

    new owner 
= pev(ENTITY, pev_owner)            
    if 
(owner == 0)
        return FMRES_IGNORED          

    set_task
(FLASH_TIMER, "get_flasher", 524627+owner)

    return FMRES_IGNORED
}

stock ChatColor(const id, const input[], any:...) 
{
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)                        
    
    replace_all
(msg, 190, "!g", "^4")
    replace_all(msg, 190, "!y", "^1")
    replace_all(msg, 190, "!t", "^3")
    
    if 
(id) players[0] = id; else get_players(players, count, "ch")
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }                                                    
    
}
}

хочу дописать в него, что бы на 3 раз ослепления игрока своей команда. наказывало кидающего флешку
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6


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

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

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