[ZP][Guia] Hacer Awp de Rayo
#1
bueno la awp de rayo lo probe en zombie plague 4.2 Jamas use la vercion 4.3

Comenzemos
Creamos un Bool
Código PHP:
// Includes
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#include <fun>

new boolawp_rayo[33// Bool que usaremos 
Ahora agregamos los Sounds Sera esto
Código PHP:
new const sound_thunder_awp[][] = { "zombie_plague/thunder1.wav""zombie_plague/thunder2.wav" 
y Luego en plugin_precache
Código PHP:
for (0sizeof sound_thunder_awpi++)
        
engfunc(EngFunc_PrecacheSoundsound_thunder_awp[i]) 
Obio el sound va en donde estan todo los sounds.
Vamos a Client_putinserver Y agregamos Esto
Código PHP:
awp_rayo[id] = false 
Vamos a fw_takedamage( y agregamos esto
Código PHP:
if( get_user_weaponattacker ) == CSW_AWP && awp_rayoattacker ] )
    
rayo_effectvictim ); 
            }
        } 
Si no le anda le tira error como 26 errores Borran una "}" Por que no me acuerdo como hera . Ahora vamos al final del zp para agregar el efecto y ponemos esto .
Código PHP:
// Thunder AWP
thunder_player(victim)
{
    
// Only effect alive zombies
    
if (!is_user_alive(victim) || !g_zombie[victim] || g_nodamage[victim])
        return;
    
    
// Nemesis cvar?
    
if (g_nemesis[victim] && !get_pcvar_num(cvar_thundernemawp))
        return;
    
    
// Get player origin
    
static Float:originF[3]
    
pev(victimpev_originoriginF)
    
    
// Make thunder
    
ThunderEF(originF)
    
    
// Emit sound
    
engfunc(EngFunc_EmitSound0CHAN_ITEMsound_thunder_awp[random_num(0sizeof sound_thunder_awp 1)], 1.0ATTN_NORM0PITCH_NORM)
    
    
// Give a glow to the victim
    
fm_set_rendering(victimkRenderFxGlowShell2552550kRenderNormal1)
    
    
// Restore health to the victim
    
set_user_health(victimget_user_health(victim) - get_pcvar_num(cvar_thunderdamageawp))
        
    
// Finish and give the normal glow
    
set_task(1.0"remove_thunder"victim)
}

ThunderEF(const Float:originF[3])
{
    
// Thunder 1
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    
write_byte(0// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]-25// z
    
engfunc(EngFunc_WriteCoordoriginF[0]+150// x axis
    
engfunc(EngFunc_WriteCoordoriginF[1]+150// y axis
    
engfunc(EngFunc_WriteCoordoriginF[2]+800// z axis
    
write_short(g_thunder1Spr// sprite
    
write_byte(1// startframe
    
write_byte(5// flamerate
    
write_byte(2// life
    
write_byte(20// width
    
write_byte(30// noise
    
write_byte(255// red
    
write_byte(255// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(200// speed
    
message_end()
    
    
// Thunder 2
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    
write_byte(0// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]-25// z
    
engfunc(EngFunc_WriteCoordoriginF[0]+150// x axis
    
engfunc(EngFunc_WriteCoordoriginF[1]+150// y axis
    
engfunc(EngFunc_WriteCoordoriginF[2]+800// z axis
    
write_short(g_thunder2Spr// sprite
    
write_byte(1// startframe
    
write_byte(5// flamerate
    
write_byte(2// life
    
write_byte(20// width
    
write_byte(30// noise
    
write_byte(255// red
    
write_byte(255// green
    
write_byte(0// blue
    
write_byte(200// brightness
    
write_byte(200// speed
    
message_end()
}

public 
remove_thunder(victim)
{
    
// Remove glow
    #if defined HANDLE_MODELS_ON_SEPARATE_ENT
    
if (g_nemesis[victim] && get_pcvar_num(cvar_nemglow) && !g_armageddonround)
        
fm_set_rendering(g_ent_playermodel[victim], kRenderFxGlowShell25500kRenderNormal1)
    else
        
fm_set_rendering(g_ent_playermodel[victim])
    
#else
    
if (g_nemesis[victim] && get_pcvar_num(cvar_nemglow) && !g_armageddonround)
        
fm_set_rendering(victimkRenderFxGlowShell25500kRenderNormal1)
    else
        
fm_set_rendering(victim)
    
#endif


Ahora vamos a Crear los Sprinte Vamos Debajo delos Include y Agregamos estas 2 cosas
Código PHP:
new const sprite_awp_thunder[] = { "sprites/lgtning.spr" }
new const 
sprite_awp_thunder2[] = { "sprites/steam1.spr" 

y luego asemos un new para agregar los sprinte
Código PHP:
new g_thunder2Sprg_thunder1Spr 

Ahora VAmos a public plugin_precache() y agregamos esto
Código PHP:
g_thunder2Spr engfunc(EngFunc_PrecacheModelsprite_awp_thunder2)
    
g_thunder1Spr engfunc(EngFunc_PrecacheModelsprite_awp_thunder)
//Luego las Cvar asemos esto
new cvar_thunderdamageawpcvar_thundernemawp
//y en  plugin_init
// CVar Especial awp 
cvar_thunderdamageawp register_cvar("za_thunder_damage_awp""100")
cvar_thundernemawp register_cvar("za_thunder_nemesis_awp""1"

Creo que Esto es todo Cual quier cosa que me olvide digame
De donde quite esto del Zombie apocalypse 1.0.4 :B para que no dijan que robo codes

NO UTILIZAR FORMAS MAL HECHAS.


Archivos adjuntos
.rar   Spritens.rar (Tamaño: 6.77 KB / Descargas: 66)
Responder
#2
1.- Ortografia
2.- te falto:
Código PHP:
rayo_effect(victim), cvar_thunderdamageawp y cvar_thundernemawp 
3.- Ahorrate llamadas al pedo de modulos
Código PHP:
engfunc(EngFunc_PrecacheSound, -> precache_sound
engfunc
(EngFunc_PrecacheModel, -> precache_model 
4.- No los usas:
Código PHP:
#include <hamsandwich>
#include <engine> 
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Responder
#3
lo que te dijo Kane mas, no es nesesario crear una variable bool y creo que te lo dije por FB
lo del takedamaga se ve mas bonito asi
Código PHP:
if( get_user_weaponattacker ) == CSW_AWP && awp_rayoattacker ] )
    
rayo_effectvictim ); 

lo del remove_thunder, no es nesesario poner "#if defined HANDLE_MODELS_ON_SEPARATE_ENT"
ya que no se usa en el zp esta desactivado( en el zp 4.2 y lo digo por que se que usas 4.2 )
Sin mi combustible( ANIME ) no vivo.
Responder
#4
gracias :B es que lo saque del za
Responder
#5
(17/06/2014, 09:22 PM)ivan escribió: gracias :B es que lo saque del za

sí, pero sigues sin cambiar lo que te dijeron.

pensando que dices ponlo en fw_takedamage pero dónde? esa función es bastante larga...
(17/04/2015, 03:36 PM)Neeeeeeeeeel.- escribió: No se va a volver a conectar a internet en toda su puta vida... nadie sube porno a mi foro y vive para contarlo.
Responder
#6
can you send me full sma of awp thunder Please?
Responder
#7
Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <fun>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new const sprite_awp_thunder[] = { "sprites/lgtning.spr" }
new const 
sprite_awp_thunder2[] = { "sprites/steam1.spr" 
new 
g_thunder2Sprg_thunder1Spr 
new const sound_thunder_awp[][] = { "zombie_plague/thunder1.wav""zombie_plague/thunder2.wav" 
new 
cvar_vida

public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
cvar_vida register_cvar("amx_awp_thunder_damage""50")
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    if (
victim == attacker || !is_user_connected(attacker))
        return 
HAM_IGNORED;
        
    if (
get_user_weapon(attacker) == CSW_AWP)
    {
        
thunder_player(victim)
    }
    return 
HAM_HANDLED;
}

public 
plugin_precache()
{
    new 
i;
    
g_thunder2Spr engfunc(EngFunc_PrecacheModelsprite_awp_thunder2)
     
g_thunder1Spr engfunc(EngFunc_PrecacheModelsprite_awp_thunder)
    for (
0sizeof sound_thunder_awpi++)
        
engfunc(EngFunc_PrecacheSoundsound_thunder_awp[i]) 
}

// Thunder AWP
thunder_player(victim)
{
    
// Only effect alive zombies
    
if (!is_user_alive(victim))
        return;
    
    
// Get player origin
    
static Float:originF[3]
    
pev(victimpev_originoriginF)
    
    
// Make thunder
    
ThunderEF(originF)
    
    
// Emit sound
    
engfunc(EngFunc_EmitSound0CHAN_ITEMsound_thunder_awp[random_num(0sizeof sound_thunder_awp 1)], 1.0ATTN_NORM0PITCH_NORM)
    
    
// Give a glow to the victim
    
fm_set_rendering(victimkRenderFxGlowShell2552550kRenderNormal1)
    
    
// Restore health to the victim
    
set_user_health(victimget_user_health(victim) - get_pcvar_num(cvar_vida))
        
    
// Finish and give the normal glow
    
set_task(1.0"remove_thunder"victim)
}

ThunderEF(const Float:originF[3])
{
    
// Thunder 1
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    
write_byte(0// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]-25// z
    
engfunc(EngFunc_WriteCoordoriginF[0]+150// x axis
    
engfunc(EngFunc_WriteCoordoriginF[1]+150// y axis
    
engfunc(EngFunc_WriteCoordoriginF[2]+800// z axis
    
write_short(g_thunder1Spr// sprite
    
write_byte(1// startframe
    
write_byte(5// flamerate
    
write_byte(2// life
    
write_byte(20// width
    
write_byte(30// noise
    
write_byte(255// red
    
write_byte(255// green
    
write_byte(255// blue
    
write_byte(200// brightness
    
write_byte(200// speed
    
message_end()
    
    
// Thunder 2
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    
write_byte(0// TE id
    
engfunc(EngFunc_WriteCoordoriginF[0]) // x
    
engfunc(EngFunc_WriteCoordoriginF[1]) // y
    
engfunc(EngFunc_WriteCoordoriginF[2]-25// z
    
engfunc(EngFunc_WriteCoordoriginF[0]+150// x axis
    
engfunc(EngFunc_WriteCoordoriginF[1]+150// y axis
    
engfunc(EngFunc_WriteCoordoriginF[2]+800// z axis
    
write_short(g_thunder2Spr// sprite
    
write_byte(1// startframe
    
write_byte(5// flamerate
    
write_byte(2// life
    
write_byte(20// width
    
write_byte(30// noise
    
write_byte(255// red
    
write_byte(255// green
    
write_byte(255// blue
    
write_byte(200// brightness
    
write_byte(200// speed
    
message_end()
}

public 
remove_thunder(victim)
{
        
fm_set_rendering(victim)


stock fm_set_rendering(entityfx kRenderFxNone255255255render kRenderNormalamount 16)
{
    static 
Float:color[3]
    
color[0] = float(r)
    
color[1] = float(g)
    
color[2] = float(b)
    
    
set_pev(entitypev_renderfxfx)
    
set_pev(entitypev_rendercolorcolor)
    
set_pev(entitypev_rendermoderender)
    
set_pev(entitypev_renderamtfloat(amount))

“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Responder
#8
Perdon por comentar años tarde e.e.
Pero como podira hacer para pasarlo a item extra?
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Responder
#9
(31/10/2018, 09:04 PM)[E]manuelitop15 escribió: Perdon por comentar años tarde e.e.
Pero como podira hacer para pasarlo a item extra?

a items extra?, Explicate we No somos adivinos
Cita: Kikizon2 Dijo :
Lo que deberian de aprender es a escribir, parece que escriben con el escroto en la mano.
Responder
#10
(31/10/2018, 11:18 PM)KevinJesus escribió:
(31/10/2018, 09:04 PM)[E]manuelitop15 escribió: Perdon por comentar años tarde e.e.
Pero como podira hacer para pasarlo a item extra?

a items extra?, Explicate we No somos adivinos

Osea seria crear un arma awp, pero con estas variables y efectos!
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Responder
#11
(01/11/2018, 09:50 PM)[E]manuelitop15 escribió:
(31/10/2018, 11:18 PM)KevinJesus escribió:
(31/10/2018, 09:04 PM)[E]manuelitop15 escribió: Perdon por comentar años tarde e.e.
Pero como podira hacer para pasarlo a item extra?

a items extra?, Explicate we No somos adivinos

Osea seria crear un arma awp, pero con estas variables y efectos!

Haaaa Ok, Cuando sepa un Poco mas te ayudo Ya que ando igual que tu aprendiendo xd
Cita: Kikizon2 Dijo :
Lo que deberian de aprender es a escribir, parece que escriben con el escroto en la mano.
Responder
#12
como hago para que los rayos y el glow sean de colores ramdon cada vez que dispara ?
Aporte(?
Discord: leo$#9073
Responder
#13
random_num()
random_float()
Responder
#14
Pregunta 
(13/03/2022, 01:37 PM)aramayo123 escribió: como hago para que los rayos y el glow sean de colores ramdon cada vez que dispara ?

Código PHP:
ThunderEF(const Float:originF[3])
{
    // Thunder 1
    engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    write_byte(0// TE id
    engfunc(EngFunc_WriteCoordoriginF[0]) // x
    engfunc(EngFunc_WriteCoordoriginF[1]) // y
    engfunc(EngFunc_WriteCoordoriginF[2]-25// z
    engfunc(EngFunc_WriteCoordoriginF[0]+150// x axis
    engfunc(EngFunc_WriteCoordoriginF[1]+150// y axis
    engfunc(EngFunc_WriteCoordoriginF[2]+800// z axis
    write_short(g_thunder1Spr// sprite
    write_byte(1// startframe
    write_byte(5// flamerate
    write_byte(2// life
    write_byte(20// width
    write_byte(30// noise
    write_byte(random_num(0255)) // red <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(random_num(0255)) // green <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(random_num(0255)) // blue <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(200// brightness
    write_byte(200// speed
    message_end()
    
    
// Thunder 2
    engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    write_byte(0// TE id
    engfunc(EngFunc_WriteCoordoriginF[0]) // x
    engfunc(EngFunc_WriteCoordoriginF[1]) // y
    engfunc(EngFunc_WriteCoordoriginF[2]-25// z
    engfunc(EngFunc_WriteCoordoriginF[0]+150// x axis
    engfunc(EngFunc_WriteCoordoriginF[1]+150// y axis
    engfunc(EngFunc_WriteCoordoriginF[2]+800// z axis
    write_short(g_thunder2Spr// sprite
    write_byte(1// startframe
    write_byte(5// flamerate
    write_byte(2// life
    write_byte(20// width
    write_byte(30// noise
    write_byte(random_num(0255)) // red <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(random_num(0255)) // green <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(random_num(0255)) // blue <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(200// brightness
    write_byte(200// speed
    message_end()

Responder
#15
(13/03/2022, 02:25 PM)(_$G$_) escribió:
Código PHP:
ThunderEF(const Float:originF[3])
{
    // Thunder 1
    engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    write_byte(0// TE id
    engfunc(EngFunc_WriteCoordoriginF[0]) // x
    engfunc(EngFunc_WriteCoordoriginF[1]) // y
    engfunc(EngFunc_WriteCoordoriginF[2]-25// z
    engfunc(EngFunc_WriteCoordoriginF[0]+150// x axis
    engfunc(EngFunc_WriteCoordoriginF[1]+150// y axis
    engfunc(EngFunc_WriteCoordoriginF[2]+800// z axis
    write_short(g_thunder1Spr// sprite
    write_byte(1// startframe
    write_byte(5// flamerate
    write_byte(2// life
    write_byte(20// width
    write_byte(30// noise
    write_byte(random_num(0255)) // red <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(random_num(0255)) // green <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(random_num(0255)) // blue <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(200// brightness
    write_byte(200// speed
    message_end()
    
    
// Thunder 2
    engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYoriginF0)
    write_byte(0// TE id
    engfunc(EngFunc_WriteCoordoriginF[0]) // x
    engfunc(EngFunc_WriteCoordoriginF[1]) // y
    engfunc(EngFunc_WriteCoordoriginF[2]-25// z
    engfunc(EngFunc_WriteCoordoriginF[0]+150// x axis
    engfunc(EngFunc_WriteCoordoriginF[1]+150// y axis
    engfunc(EngFunc_WriteCoordoriginF[2]+800// z axis
    write_short(g_thunder2Spr// sprite
    write_byte(1// startframe
    write_byte(5// flamerate
    write_byte(2// life
    write_byte(20// width
    write_byte(30// noise
    write_byte(random_num(0255)) // red <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(random_num(0255)) // green <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(random_num(0255)) // blue <========== COLOR ALEATORIO "random_num(0, 255)"
    write_byte(200// brightness
    write_byte(200// speed
    message_end()

Y para que el glow del personaje tambien sea ramdon? Se puede? 
Por cierto gracias me sirvio
Aporte(?
Discord: leo$#9073
Responder
#16
(13/03/2022, 04:46 PM)aramayo123 escribió: Y para que el glow del personaje tambien sea ramdon? Se puede? 
Por cierto gracias me sirvio

"random_num(0 , 255)"... En los colores del fm_set_rendering
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)