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

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

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

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

GHW Adrenaline

, Я его подправил рендеринг игрока под себя, но хочется чуть большего
Статус пользователя kvo
сообщение 3.3.2010, 18:39
Сообщение #1


Стаж: 15 лет

Сообщений: 197
Благодарностей: 84
Полезность: 340

Как сделать чтоб при включении режима Invisible, был рендеринг не тока игрока, но и рук от 1лица?

Код
#define VERSION    "2.0"

#include <amxmodx>
#include <amxmisc>
#include <fun>

new adrenaline_multiplier
new adrenaline_max
new adrenaline_toggle
new adrenaline_speed
new adrenaline_sound1
new adrenaline_sound2

new maxspeed_pcvar

new bool:playsound1
new bool:playsound2

new sound1[64] = "adrenaline_booster.wav"
new sound2[64] = "adrenaline_full.wav"
new sound1b[64] = "sound/adrenaline_booster.wav"
new sound2b[64] = "sound/adrenaline_full.wav"

new adrenaline[33]
new ability[33]
new alpha[33]

new bool:restarting
new bool:freezetime

public plugin_init()
{
    register_plugin("Adrenaline Mod",VERSION,"GHW_Chronic")

    adrenaline_multiplier = register_cvar("adrenaline_amount","10")
    adrenaline_max = register_cvar("adrenaline_max","100")
    adrenaline_toggle = register_cvar("adrenaline_toggle","1")
    adrenaline_speed = register_cvar("adrenaline_speed","640.0")
    maxspeed_pcvar = get_cvar_pointer("sv_maxspeed")

    register_clcmd("booster","menu_cmd")

    register_event("CurWeapon","CurWeapon","be")
    register_event("DeathMsg","DeathMsg","a")

    new name[32]
    get_modname(name,31)
    if(equali(name,"cstrike") || equali(name,"czero"))
    {
        register_logevent("game_restart2",2,"1=Round_Start")
        register_logevent("game_end",2,"1=Round_End")
    }
    register_event("TextMsg","game_restart1","a","2=#Game_will_restart_in")
    register_event("TextMsg","game_restart1","a","2=#Game_Commencing")

    register_menu("adrenaline_menu",(1<<0)|(1<<1)|(1<<2)|(1<<9),"menu_press")

    register_dictionary("GHW_Adrenaline_Mod.txt")
}

public game_end()
{
    new players[32], num
    get_players(players,num,"h")
    for(new i=0;i<num;i++)
    {
        ability[players[i]]=0
        set_user_rendering(players[i])
    }
    freezetime=true
}

public game_restart1()
{
    restarting = true
    new players[32], num
    get_players(players,num,"h")
    for(new i=0;i<num;i++)
    {
        adrenaline[players[i]]=0
        ability[players[i]]=0
        set_user_rendering(players[i])
    }
}

public game_restart2()
{
    if(restarting && get_pcvar_num(adrenaline_toggle))
    {
        restarting=false
        new players[32], num
        get_players(players,num,"h")
        for(new i=0;i<num;i++)
        {
            adrenaline[players[i]]=0
            ability[players[i]]=0
            set_user_rendering(players[i])
        }
    }
    freezetime=false
}

public plugin_precache()
{
    adrenaline_sound1 = register_cvar("adrenaline_sound1","1")
    adrenaline_sound2 = register_cvar("adrenaline_sound2","1")
    if(get_pcvar_num(adrenaline_sound1) && file_exists(sound1b))
    {
        playsound1=true
        precache_sound(sound1)
    }
    if(get_pcvar_num(adrenaline_sound2) && file_exists(sound2b))
    {
        playsound2=true
        precache_sound(sound2)
    }
}

public DeathMsg()
{
    if(get_pcvar_num(adrenaline_toggle) && !restarting)
    {
        new id = read_data(1)
        new target = read_data(2)
        ability[target]=0
        set_user_rendering(target)
        if(get_user_team(id)==get_user_team(target))
        {
            adrenaline[id] -= get_pcvar_num(adrenaline_multiplier)
            if(adrenaline[id]<0) adrenaline[id]=0
        }
        else
        {
            new maxad = get_pcvar_num(adrenaline_max)
            if(adrenaline[id]!=maxad)
            {
                adrenaline[id] += get_pcvar_num(adrenaline_multiplier)
                if(adrenaline[id]>=maxad)
                {
                    adrenaline[id]=maxad
                    if(playsound2) emit_sound(id,CHAN_VOICE,sound2,VOL_NORM,ATTN_NORM,0,PITCH_NORM)
                    client_cmd(id, "booster")
                }
            }
        }
    }
}

public client_connect(id)
{
    adrenaline[id]=0
    ability[id]=0
    alpha[id]=0
    set_task(0.5,"adrenaline_hud",id,"",0,"b")
}

public client_disconnect(id) remove_task(id)

public adrenaline_hud(id)
{
    if(get_pcvar_num(adrenaline_toggle) && is_user_alive(id))
    {
        if(ability[id])
        {
            if(adrenaline[id]<=0)
            {
                ability[id]=0
                set_user_rendering(id)
            }
            else adrenaline[id] -= 1
        }

        if(ability[id]==2 && get_user_health(id)<255) set_user_health(id,get_user_health(id) + 1)
        else if(ability[id]==3 && alpha[id]>70)
        {
            alpha[id] -= 1
            set_user_rendering(id,kRenderFxHologram,0,0,0,kRenderTransAlpha,alpha[id])
        }

        if(adrenaline[id]!=get_pcvar_num(adrenaline_max))
        {
            set_hudmessage(255, 255, 0, 0.90, 0.02, 0, 6.0, 1.0)
            show_hudmessage(id,"--^nAdrenaline: %d^n--",adrenaline[id])
        }
        else
        {
            set_hudmessage(random_num(70,255), random_num(70,255), 0, 0.90, 0.02, 0, 6.0, 1.0)
            show_hudmessage(id,"--^nAdrenaline: %d^n--",adrenaline[id])
        }
    }
}

public menu_cmd(id)
{
    if(get_pcvar_num(adrenaline_toggle) && adrenaline[id]>=get_pcvar_num(adrenaline_max) && !restarting && !freezetime)
    {
        new message[1024]
        new len = format(message,1023,"%L^n^n",id,"MSG_MENUTITLE")
        len += format(message[len],1023-len,"1. %L^n",id,"MSG_SPEED")
        len += format(message[len],1023-len,"2. %L^n",id,"MSG_HEALTH")
        len += format(message[len],1023-len,"3. %L^n^n",id,"MSG_INVIS")
        len += format(message[len],1023-len,"0. %L",id,"MSG_EXIT")
        show_menu(id,(1<<0)|(1<<1)|(1<<2)|(1<<9),message,-1,"adrenaline_menu")
    }
}

public menu_press(id,key)
{
    if(get_pcvar_num(adrenaline_toggle) && !restarting && !freezetime)
    {
        switch(key)
        {
            case 0:
            {
                ability[id]=1
                set_user_maxspeed(id,get_pcvar_float(adrenaline_speed))
            }
            case 1: ability[id]=2
            case 2:
            {
                ability[id]=3
                set_user_rendering(id,kRenderFxHologram,0,0,0,kRenderTransAlpha,30)
                alpha[id] = 2
            }
        }
        if(playsound1 && key!=9) emit_sound(id,CHAN_VOICE,sound1,VOL_NORM,ATTN_NORM,0,PITCH_NORM)
    }
    return PLUGIN_HANDLED
}

public CurWeapon(id)
{
    if(get_pcvar_num(adrenaline_toggle) && !freezetime)
    {
        if(ability[id]==1)
        {
            client_cmd(id,"cl_forwardspeed 400;cl_backspeed 400;cl_sidespeed 400")
            new Float:speed = get_pcvar_float(adrenaline_speed)
            set_user_maxspeed(id,speed)
            set_pcvar_float(maxspeed_pcvar,speed)
        }
        if(ability[id]==3 && alpha[id]<200)
        {
            alpha[id] += 3
            set_user_rendering(id,kRenderFxHologram,0,0,0,kRenderTransAlpha,alpha[id])
        }
    }
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: