AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Guías/Tutoriales (https://forums.alliedmods.net/forumdisplay.php?f=137)
-   -   [ZP] Efecto al ser transformado en zombie 4.3 (https://forums.alliedmods.net/showthread.php?t=183040)

Sidix 04-16-2012 11:07

[ZP] Efecto al ser transformado en zombie 4.3
 
3 Attachment(s)
Bueno, yo aquí les voy a explicar como hacer un efecto al ser transformado en zombie 4.3

con un model.

Utilizado en la versión: 4.3

PHP Code:


#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <xs>

new g_efecto_index[33], g_tuvo_efecto[33// creamos las varibles para llamar el evento y terminarlo
new const efecto_spr[] = "sprites/infeccion_efecto.spr" // creamos una constante para el sprite.

new cvar_escalacvar_tiemposprcvar_nivelefecto // creamos tres cvars

// cvar_scale: Para cambiar la escala o nivel del efecto
// cvar_showtime: El tiempo en mostrar en efecto
// cvar_lightlevel: el nivel de luz del efecto.

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Llamo a la forward de la libreria Ham Sandwich: Ham_Spawn
        // estamos registrando la entidad llamada al player
    
RegisterHam(Ham_Spawn"player""fw_spawn_post"1)
    
register_forward(FM_AddToFullPack"fw_WhatTheFuck_Post"1// Registramos la forward del evento
    
    // Cvars
    
cvar_escala register_cvar("zp_in-ef_scale""0.035"// registramos la cvar
    
cvar_tiempospr register_cvar("zp_in-ef_showtime""2.0")  // registramos la cvar
    
cvar_nivelefecto register_cvar("zp_in-ef_lightlevel""100.0")  // registramos la cvar
}

public 
plugin_precache()
{
    
precache_model(efecto_spr// Precacheamos


PHP Code:

// Creamos el public "Ham_Spawn"
public fw_spawn_post(id)
{
    if(
g_tuvo_efecto[id])  // termina el efecto despues de la infeccion
        
remover_efecto(id// remueve el efecto.
}

public 
zp_user_infected_post(idattacker)
{
    if(
is_user_alive(attacker)) // chekeamos al jugador conectado
    
{
        
show_effect(id// muestra el efecto
    
}


PHP Code:

// Creamos el public de la entidad que mostrará el efecto.
public show_effect(id)
{
    
g_efecto_index[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"env_sprite")) // la llamamos
    
    
if (!pev_valid(g_efecto_index[id]))
        return 
// hacemos return
    
    
g_tuvo_efecto[id] = 1
    
    set_pev
(g_efecto_index[id], pev_solidSOLID_NOT//
    
set_pev(g_efecto_index[id], pev_movetypeMOVETYPE_NONE// creamos el movimiento del evento

    
engfunc(EngFunc_SetModelg_efecto_index[id], efecto_spr)
    
    
set_pev(g_efecto_index[id], pev_rendermodekRenderTransAlpha)
    
set_pev(g_efecto_index[id], pev_renderamt0.0)
    
set_pev(g_efecto_index[id], pev_ownerid)
    
set_pev(g_efecto_index[id], pev_scaleget_pcvar_float(cvar_escala)) // setea la escala
    
set_pev(g_efecto_index[id], pev_light_levelget_pcvar_float(cvar_nivelefecto)) // setea el nivel de efecto
    
    
set_task(get_pcvar_float(cvar_tiempospr), "remover_efecto"g_efecto_index[id]) // task para remover el efecto en "x" tiempo.


PHP Code:

// creamos public del evento
public fw_WhatTheFuck_Post(eseenthosthost_flagsplayerp_set)
{
    if(!(
host 33))
        return 
FMRES_IGNORED
        
    
if(ent != g_efecto_index[host] || !pev_valid(ent))
        return 
FMRES_IGNORED
        
    
if(pev(entpev_owner) != host)
        return 
FMRES_IGNORED
        
    
if(!is_user_alive(host))
        return 
FMRES_IGNORED
        
    
static Float:origin[3], Float:forvec[3], Float:voffsets[3], Float:Angles[3]
    
    
pev(hostpev_originorigin)
    
pev(hostpev_view_ofsvoffsets)
    
pev(hostpev_anglesAngles)
    
    
xs_vec_add(originvoffsetsorigin)
    
    
// Vector hacia adelante en la dirección de la victima
    
velocity_by_aim(host10forvec)
    
    
// Setea el sprite en el origin
    
xs_vec_add(originforvecorigin)
    
    
engfunc(EngFunc_SetOriginentorigin)
    
set_es(esES_Originorigin)
    
set_es(esES_AnglesAngles)
    
    
// Hace visible el sprite
    
set_es(esES_RenderModekRenderTransAdd)
    
set_es(esES_RenderAmt200)
        
    return 
FMRES_HANDLED


PHP Code:

// esta remueve la entidad del efecto despues de la infeccion
public remover_efecto(ent)
{
    
g_tuvo_efecto[pev(entpev_owner)] = 0
    
    
if(pev_valid(ent))
        
engfunc(EngFunc_RemoveEntityent// remueve la entidad.


espero que les haya gustado...

se pueden comentar sugerencias constructivas. !

pd: falta explicar un poco pero ahora añado más explicación... :oops:

[IMG]http://img560.**************/img560/9900/infeccionefecto.png[/IMG]
http://forums.alliedmods.net/attachm...1&d=1324892859
http://forums.alliedmods.net/attachm...1&d=1324896396
Allí varios efectos... !

Creditos a : Dias

xLeoNNN 04-16-2012 17:29

Re: [ZP] Poner efecto al ser infectado 4.3
 
1.- que efecto ?
2.- que sprite usar ?
3.- good.

Exc3ll@N 04-16-2012 19:17

Re: [ZP] Poner efecto al ser infectado 4.3
 
el efecto lo ve el usuario que fue infectado en su pantalla o todos' , si lo ven todos , podes usar otra forma con menos code y misma funcion....

Sidix 04-16-2012 19:37

Re: [ZP] Poner efecto al ser infectado 4.3
 
el efecto lo visualiza el usuario infectado en el momento de ser tocado por un zombie... !!!

XINLEI 04-16-2012 20:33

Re: [ZP] Poner efecto al ser infectado 4.3
 
Digame quien le dio eso y de donde lo sacó, o viene con el cuento de que se lo encontró.

xLeoNNN 04-16-2012 20:40

Re: [ZP] Poner efecto al ser infectado 4.3
 
el modelo lo vi en another zombie models collection yo xdd.
cambia el titulo, suena raro "efecto al ser infectado", podria ser efecto al ser contagiado ...

Sidix 04-16-2012 22:19

Re: [ZP] Poner efecto al ser infectado 4.3
 
XINLEI: La idea no es mía pero quise poste-arla, solo trato de aportar ya que siempre salen con "hacer niveles para zp" pienso que eso ya cansa... !!!

xLeonNNN: No es lo mismo? o puede ser "Efecto al ser transformado en zombie" ?

xLeoNNN 04-16-2012 22:21

Re: [ZP] Poner efecto al ser infectado 4.3
 
es lo mismo, pero suena raro "efecto al ser infectado", dilo en voz alta y dime Jaa.
contagiado es mejor.

Sidix 04-16-2012 22:30

Re: [ZP] Poner efecto al ser infectado 4.3
 
esta bien ;)

ya cambié

XINLEI 04-16-2012 23:00

Re: [ZP] Poner efecto al ser infectado 4.3
 
Quote:

Originally Posted by Sidix (Post 1690804)
XINLEI: La idea no es mía pero quise poste-arla

no dije de la idea, el code.

Quote:

Originally Posted by xLeoNNN (Post 1690807)
es lo mismo, pero suena raro "efecto al ser infectado", dilo en voz alta y dime Jaa.
contagiado es mejor.

¿contagiado? ni que fuera gripe.


All times are GMT -4. The time now is 09:17.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.