Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Слеповая граната

Статус пользователя Karpen
сообщение 5.4.2011, 16:06
Сообщение #1


Стаж: 15 лет

Сообщений: 368
Благодарностей: 27
Полезность: < 0

Как сделать, чтоб экрат был белым ани серым когда ослепило игрока плагином:

Код
#include <amxmodx>
#include <fakemeta>

new const Version[] = "1.0.1"

new MsgScreenFade, MsgScreenShake
new FLenable, FLcolor, FLradius, FLlightcolor, FLsound

new const Sound[] = "sound/ultrasound.mp3"

public plugin_precache() {
    FLsound = register_cvar("amx_rfl_sound", "1")
    
    if(get_pcvar_num(FLsound))
        precache_generic(Sound)
}

public plugin_init()
{
    register_plugin("Realistic FlashBang", Version, "GlaDiuS")
    
    FLenable = register_cvar("amx_rfl_enable", "1")
    FLcolor = register_cvar("amx_rfl_color", "128 128 128")
    FLradius = register_cvar("amx_rfl_radius","50")
    FLlightcolor = register_cvar("amx_rfl_lightcolor","255 255 255")
    
    register_event("ScreenFade","FlashEvent","b","4=255","5=255","6=255","7>199")
    register_forward(FM_EmitSound,"fw_emitsound")
    
    MsgScreenFade = get_user_msgid("ScreenFade")
    MsgScreenShake = get_user_msgid("ScreenShake");
}

public FlashEvent(id)
{    
    if(!get_pcvar_num(FLenable))
        return
    
    // get color
    new Colores[12], rgb[3][4], Red, Green, Blue
    get_pcvar_string(FLcolor, Colores, charsmax(Colores))
    parse(Colores, rgb[0], 3, rgb[1], 3, rgb[2], 3)
    Red = clamp(str_to_num(rgb[0]), 0, 255)
    Green = clamp(str_to_num(rgb[1]), 0, 255)
    Blue = clamp(str_to_num(rgb[2]), 0, 255)
    
    new Duration, HoldTime, Fade, Alpha
    Duration = read_data(1)
    HoldTime = read_data(2)
    Fade = read_data(3)
    Alpha = read_data(7)
    
    message_begin(MSG_ONE, MsgScreenFade, {0,0,0}, id)
    write_short(Duration)    // Duration
    write_short(HoldTime)    // Hold time
    write_short(Fade)    // Fade type
    write_byte(Red)        // Red
    write_byte(Green)        // Green
    write_byte(Blue)        // Blue
    write_byte(Alpha)    // Alpha
    message_end()
    
    set_pev(id, pev_punchangle, Float:{125.0, 125.0, 125.0})
    
    if(get_pcvar_num(FLsound)) {
        client_cmd(id, "mp3 play %s", Sound)
        set_task(8.0, "stoppedsound", id)
    }
    
    set_task(3.0, "Shake", id)
}

public Shake(id)
{
    new Dura = UTIL_FixedUnsigned16(4.0, 1 << 12)
    new Freq = UTIL_FixedUnsigned16(0.7 , 1 << 8)
    new Ampl = UTIL_FixedUnsigned16(20.0, 1 << 12)
    
    message_begin(MSG_ONE , MsgScreenShake , {0,0,0} ,id)
    write_short( Ampl ) // --| Shake amount.
    write_short( Dura ) // --| Shake lasts this long.
    write_short( Freq ) // --| Shake noise frequency.
    message_end ()
}

public stoppedsound(id)
    client_cmd(id, "mp3 stop %s", Sound)

public fw_emitsound(entity,channel,const sample[],Float:volume,Float:attenuation,fFlags,pitch)
{
    if(!get_pcvar_num(FLenable))
        return FMRES_IGNORED
    
    // not a flashbang exploding
    if(!equali(sample,"weapons/flashbang-1.wav") && !equali(sample,"weapons/flashbang-2.wav"))
        return FMRES_IGNORED
    
    // light effect
    flashbang_explode(entity)
    
    return FMRES_IGNORED
}

public flashbang_explode(greindex)
{
    if(!pev_valid(greindex))
        return
    
    // get origin of explosion
    new Float:origin[3]
    pev(greindex, pev_origin, origin)
    
    // get color
    new Colores[12], rgb[3][4], Red, Green, Blue
    get_pcvar_string(FLlightcolor, Colores, charsmax(Colores))
    parse(Colores, rgb[0], 3, rgb[1], 3, rgb[2], 3)
    Red = clamp(str_to_num(rgb[0]), 0, 255)
    Green = clamp(str_to_num(rgb[1]), 0, 255)
    Blue = clamp(str_to_num(rgb[2]), 0, 255)
    
    message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
    write_byte(TE_DLIGHT) // 27
    write_coord(floatround(origin[0])) // x
    write_coord(floatround(origin[1])) // y
    write_coord(floatround(origin[2])) // z
    write_byte(get_pcvar_num(FLradius)) // radius
    write_byte(Red) // Red
    write_byte(Green) // Green
    write_byte(Blue) // Blue
    write_byte(8) // life
    write_byte(60) // decay rate
    message_end()
}

UTIL_FixedUnsigned16 ( const Float:Value, const Scale ) {
    return clamp( floatround( Value * Scale ), 0, 0xFFFF );
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: