View Single Post
Author Message
Andreita
BANNED
Join Date: Apr 2012
Old 05-14-2012 , 02:42   [req][zp] Campo de fuerza (de Hielo)
#1

Amigos , Necesito que me ayuden a pasar el campo de fuerza (touch) a (Frost) que se congele el zombie D:! alguen me puede ayudar?

Code:
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <zombieplague>
#include <hamsandwich>
#include <fakemeta_util>
#include <fun>

#define PLUGIN "[ZP] Extra Item: Force Field Grenade"
#define VERSION "v2.0"
#define AUTHOR "lucas_7_94" // Thanks To Users in credits too!.

#define CAMPO_ROUND_NAME "Force Shield (One Round)"
#define CAMPO_TIME_NAME "Force Shield (Short-acting)"

/*=============================[Plugin Customization]=============================*/
#define CAMPO_TASK
//#define CAMPO_ROUND


//#define RANDOM_COLOR
#define ONE_COLOR

new const NADE_TYPE_CAMPO 5698 

#if defined ONE_COLOR
new Float:CampoColors[3] = { 255.0 0.0 0.0 }
#endif

new const model_grenade[] = "models/zombie_plague/v_auragren.mdl"
new const model[] = "models/zombie_plague/aura8.mdl"
new const w_model[] = "models/zombie_plague/w_aura.mdl"
new const sprite_grenade_trail[] = "sprites/laserbeam.spr"
new const entclas[] = "campo_grenade_forze"
new cvar_flaregrenadesg_trailSprcvar_pushg_SayTextg_itemID
new bool:g_bomb[33]


/*=============================[End Customization]=============================*/

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHam(Ham_Think"grenade""fw_ThinkGrenade")
    
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
cvar_flaregrenades get_cvar_pointer("zp_flare_grenades")
    
    
register_forward(FM_SetModel"fw_SetModel")

    
register_clcmd("burbuja""give_burbuja")

    
register_event"CurWeapon""hook_curwpn""be""1=1""2!29" );

    
    
register_event("HLTV""event_round_start""a""1=0""2=0")
    
    
register_forward(FM_Touch"fw_touch")
    
    
g_SayText get_user_msgid("SayText")

    
register_cvar("zp_shield_creator"AUTHORFCVAR_SERVER|FCVAR_PROTECTED)
    
    
#if defined CAMPO_ROUND
    
g_itemID zp_register_extra_item CAMPO_ROUND_NAME 30 ZP_TEAM_HUMAN )
    
#else 
    
g_itemID zp_register_extra_item CAMPO_TIME_NAME 15 ZP_TEAM_HUMAN )
    
#endif
    
    // Push cvar, [Only number's with Coma]
    
cvar_push register_cvar("zp_forze_push""7.5")
}

public 
event_round_start() {
    
    
#if defined CAMPO_ROUND
    
remove_entity_name(entclas)
    
#endif
    
    
arraysetg_bombfalse33 );
}

public 
plugin_precache() {
    
    
g_trailSpr engfunc(EngFunc_PrecacheModelsprite_grenade_trail)
    
engfunc(EngFunc_PrecacheModelmodel_grenade)
    
engfunc(EngFunc_PrecacheModelmodel)
    
engfunc(EngFunc_PrecacheModelw_model)
}

public 
client_disconnect(idg_bomb[id] = false

public zp_extra_item_selected(playeritemid) {
    
    if(
itemid == g_itemID)
    {
        if(
g_bomb[player]) Color(player"!g[Shield]!y You already have a force field")
        else 
        {
            
g_bomb[player] = true
            give_item
(player,"weapon_smokegrenade")
            
            
            
#if defined CAMPO_ROUND
            
Color(player"!g[Shield]!y You Bought a force field!. This, lasts 1 round complete.")
            
#else
            
Color(player"!g[Shield]!y You Bought a force field!. This, lasts very little!")
            
#endif
        
}
        
        
    }
    
}
public 
fw_PlayerKilled(victimattackershouldgibg_bomb[victim] = false

public fw_ThinkGrenade(entity) {   
    
    if(!
pev_valid(entity)) return HAM_IGNORED
    
    
static Float:dmgtime   
    pev
(entitypev_dmgtimedmgtime)
    
    if (
dmgtime get_gametime())
        return 
HAM_IGNORED   
    
    
if(pev(entitypev_flTimeStepSound) == NADE_TYPE_CAMPO)
        
crear_ent(entity)
    
    return 
HAM_SUPERCEDE
}

    
public 
fw_SetModel(entity, const model[]) {    
    
    static 
Float:dmgtime
    pev
(entitypev_dmgtimedmgtime)
    
    if (
dmgtime == 0.0)
        return 
FMRES_IGNORED;
    
    if (
equal(model[7], "w_sm"4))
    {        
        new 
owner pev(entitypev_owner)        
        
        if(!
zp_get_user_zombie(owner) && g_bomb[owner]) 
        {
            
set_pcvar_num(cvar_flaregrenades,0)            
            
            
fm_set_rendering(entitykRenderFxGlowShell000255255kRenderNormal16)
            
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_BEAMFOLLOW// TE id
            
write_short(entity// entity
            
write_short(g_trailSpr// sprite
            
write_byte(10// life
            
write_byte(10// width
            
write_byte(000// r
            
write_byte(255// g
            
write_byte(255// b
            
write_byte(500// brightness
            
message_end()
            
            
set_pev(entitypev_flTimeStepSoundNADE_TYPE_CAMPO)
            
            
set_task(6.0"DeleteEntityGrenade" ,entity)
            
entity_set_model(entityw_model)
            return 
FMRES_SUPERCEDE
        
}
    }
    return 
FMRES_IGNORED
    
}

public 
DeleteEntityGrenade(entityremove_entity(entity)

public 
crear_ent(id) {
    
    new 
attacker
    attacker 
pev(idpev_owner)
    
    
g_bomb[attacker] = false
    
    set_pcvar_num
(cvar_flaregrenades,1)
    
    
// Create entitity
    
new iEntity create_entity("info_target")
    
    if(!
is_valid_ent(iEntity))
        return 
PLUGIN_HANDLED
    
    
new FloatOrigin[3
    
entity_get_vector(idEV_VEC_originOrigin
    
    
entity_set_string(iEntityEV_SZ_classnameentclas)
    
    
entity_set_vector(iEntity,EV_VEC_originOrigin)
    
entity_set_model(iEntity,model)
    
entity_set_int(iEntityEV_INT_solidSOLID_TRIGGER)
    
entity_set_size(iEntityFloat: {-100.0, -100.0, -100.0}, Float: {100.0100.0100.0})
    
entity_set_int(iEntityEV_INT_renderfxkRenderFxGlowShell)
    
entity_set_int(iEntityEV_INT_rendermodekRenderTransAlpha)
    
entity_set_float(iEntityEV_FL_renderamt50.0)
    
    
#if defined RANDOM_COLOR
    
if(is_valid_ent(iEntity))
    {
        new 
Float:vColor[3]
        
        for(new 
i3i++)
            
vColor[i] = random_float(0.0255.0)
        
        
entity_set_vector(iEntityEV_VEC_rendercolorvColor)
    }
    
#endif

    #if defined ONE_COLOR
    
entity_set_vector(iEntityEV_VEC_rendercolorCampoColors)
    
#endif
    
    #if defined CAMPO_TASK
    
set_task(15.0"DeleteEntity"iEntity)
    
#endif
    
    
    
return PLUGIN_CONTINUE;
}

public 
zp_user_infected_post(infectedinfector
    if (
g_bomb[infected]) 
        
g_bomb[infected] = false

public fw_touch(enttouched)
{
    if ( !
pev_valid(ent) ) return FMRES_IGNORED;
    static 
entclass[32];
    
pev(entpev_classnameentclass31);
    
    if ( 
equali(entclassentclas) )
    {    
        if(
zp_get_user_zombie(touched) || zp_get_user_nemesis(touched))
        {
            new 
Float:pos_ptr[3], Float:pos_ptd[3], Float:push_power get_pcvar_float(cvar_push)
            
            
pev(entpev_originpos_ptr)
            
pev(touchedpev_originpos_ptd)
            
            for(new 
03i++)
            {
                
pos_ptd[i] -= pos_ptr[i]
                
pos_ptd[i] *= push_power
            
}
            
set_pev(touchedpev_velocitypos_ptd)
            
set_pev(touchedpev_impulsepos_ptd)
        }
    }
    return 
PLUGIN_HANDLED
}

public 
remove_ent() {
    
remove_entity_name(entclas)
}  

public 
give_burbuja(index)
{
    
g_bomb[index] = true
}

public 
DeleteEntityentity )  // Thanks xPaw For The Code =D
    
if( is_valid_ententity ) ) 
    
remove_entityentity );

stock Color(const id, const input[], any:...)
{
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!t""^3")
    
    
message_begin(MSG_ONE_UNRELIABLEg_SayText_id)
    
write_byte(id)
    
write_string(msg)
    
message_end()
}

public 
hook_curwpnid ) { // Thanks Anakin_cstrike For The Code ! =D [Virus Grenade]
    
if( !is_user_aliveid ) )
        return 
PLUGIN_CONTINUE;
    
    if( 
g_bombid ] && !zp_get_user_zombieid ) )
    {
        new 
wID read_data)
        if( 
wID == CSW_SMOKEGRENADE )
            
set_pevidpev_viewmodel2model_grenade )
    }
    return 
PLUGIN_CONTINUE;

Andreita is offline