[Guia] Agregar efecto de fuego y hielo a un arma
#1
"hola aca les en señare como aser awp frost , fuego ok comensemos esto sirve para la vercion 4.2, 4.1, 4.3"
SIRVE PARA CUALQUIER ARMA, SOLO SE LE DEBE AGREGAR EL EFECTO EN EL HANDLE...

Código PHP:
new g_weapon_effect[33]; // AWP O EL ARMA QUE QUIERAN...

// luego buscan : public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type)
// y en la parte donde es humano "if (!g_zombie[attacker])" debajo de la llave "{"

switch (g_weapon_effect[attacker]) {
    case 
1CHECK___EFFECT(victim0// aca podrian poner la funcion "fire_explode" de la que trae default el zp 
    
case 2CHECK___EFFECT(victim1// aca podrian poner la funcion "frost_explode" de la que trae default el zp 
}


// ESTO SE PUEDE REMPLAZAR POR EL QUE TRAE EL ZOMBIE PLAGUE DEFAULT PERO POR SIN NO LO QUIEREN LES DEJO ESTE
// ESTO LO COPIAN DONDE QUIERAN...

CHECK___EFFECT(victimtype) {
    static 
Float:originF[3]
    
pev(victimpev_originoriginF)
    
    
if (!is_user_alive(victim
    || !
g_zombie[victim
    || 
g_frozen[victim
    || 
g_nemesis[victim// SI QUIEREN QUE EL NEMESIS RECIBA EL EFECTO LO BORRAN...
    
|| g_nodamage[victim])
        return;
    
    message_begin
(MSG_ONE_UNRELIABLEg_msgDamage_victim)
    
write_byte(0// damage save
    
write_byte(0// damage take
         write_long(type == DMG_BURN DMG_DROWN// damage type - DMG_FREEZE
         write_coord(0// x
         write_coord(0// y
         write_coord(0// z
         message_end()
     
    static 
Float:EFECT_TIME;
    
EFECT_TIME 3.0;
    
    
message_begin(MSG_ONE_UNRELIABLEg_msgScreenFade_victim)
    
write_short(UNIT_SECOND*1
    
write_short(floatround(UNIT_SECOND*EFECT_TIME))
    
write_short(FFADE_IN)
    
write_byte(type == 150// red
    
write_byte(type == 50 0// green
    
write_byte(type == 2550// blue
    
write_byte(100// alpha
    
message_end()
    
    if (
type == 1) {
        
set_rendering(victimkRenderFxGlowShell0150250kRenderNormal1)
        
        
        if (
pev(victimpev_flags) & FL_ONGROUND)
            
set_pev(victimpev_gravity999999.9
        else
            
set_pev(victimpev_gravity0.000001
    
    
        g_frozen
[victim] = true;
        
set_task(EFECT_TIME"remove_freeze"victim)
    }
    else {
        static 
params[1]
    
        
if (g_nemesis[victim])
            
params[0] = get_pcvar_num(cvar_fireduration)
        else
            
params[0] = get_pcvar_num(cvar_fireduration)*5
        
        set_task
(0.1"burning_flame"victim+TASK_BLOODparamssizeof params)
    }
}

// PARA AGREGAR EL EFECTO, YA SEA CUALQUIER ARMA, EN SU MENU DE ARMAS EN EL HANDLE AGREGAN EL SWITCH EJEMPLO EN EL ZP
// BUSCAN buy_primary_weapon(id, selection) Y DEBAJO DEL CANBUY "g_canbuy[id] = false" AGREGAN 

switch (selection)
{
         case 5g_weapon_effect[id] = // EL ARMA NUMERO 5 TENDRA EFECTO DE FUEGO 
    
case 6g_weapon_effect[id] = // EL ARMA NUMERO 6 TENDRA EFECTO DE HIELO
    
default: g_weapon_effect[id] = // SI SELECCIONO OTRA ARMA LE SACAMOS EL EFECTO
}  

/*ESTO YA ES OPCIONAL GENTE*/

// para poner un model para cada awp tenesmos q aser esto

new const model_awp_frost[] = { "models/zombie_plague/v_awp1.mdl" }
new const 
model_awp_fire[] = { "models/zombie_plague/awp2.mdl" }

ahora para precachar el model bamos a : public plugin_precache y ponemos

engfunc
(EngFunc_PrecacheModelmodel_awp_frost)
engfunc(EngFunc_PrecacheModelmodel_awp_fire)

y buscamos replace_models y agregamos esto al final

case 
CSW_AWP:
{
            if (g_weapon_effect[id] == 1)
                set_pev(idpev_weaponmodel2model_awp_fire)
            else if (g_weapon_effect[id] == 2)
                set_pev(idpev_weaponmodel2model_awp_frost)
}

// esto fue todo comente si me olvide algo dijan 

CODIGO MEJORADO... SI VEN ERRORES ME AVISA!
Responder
#2
Ohhh pero que bonita guita jaja xD
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#3
(01/05/2014, 08:17 PM)kikizon2 escribió: Ohhh pero que bonita guita jaja xD

:o hay arreglo el titulo se escrivio mal jajajaj
Responder
#4
Los comentarios hazlo fuera de las etiquetas asi queda mejor.
Responder
#5
Esta bien pero para mi es al pedo crear otra 2 funciones de "fire_player" y "frost_player".. Usa la de las granadas queda mejor Guiño
Solo hay que cambiar algunas condiiciones e.e
Free agent - Vendo plugins, mods o apps del foro IPB (Invision community)
Contactarme vía Discord >>> AtselTV#8202
Responder
#6
Se puede mejorar.
Estoy de viaje sino dejo code...
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#7
(01/05/2014, 09:31 PM)CSAxel escribió: Esta bien pero para mi es al pedo crear otra 2 funciones de "fire_player" y "frost_player".. Usa la de las granadas queda mejor Guiño
Solo hay que cambiar algunas condiiciones e.e

xd ami me ase facil asi como lo deje (._.)

(01/05/2014, 09:23 PM)UnrealT escribió: Los comentarios hazlo fuera de las etiquetas asi queda mejor.

LA prox Guia o tuto q ago lo ago como me desis ok.

(01/05/2014, 11:09 PM)roccoxx escribió: Se puede mejorar.
Estoy de viaje sino dejo code...

roccoxx me ayudas en algo no creo q sea doble post

bue el prolema es este cuando yo lo pongo las 2 awp en

seme mesclan la awp osea disparo y aprede fuego y hielo eso es bugs creo sem e mesclan los effecto uso el menu viejo delas armas

// Weapons bought
g_canbuy[id] = false

switch (selection)
{
case 18: g_awpfrost[id] = true
case 19: g_awpfire[id] = true
}
Responder
#8
Cuando el player se conecta, setealos en false a las 2 variables
Y tambirn si tenes en true la variable del awp de hielo, que la de fuego que este en false y viceversa

EDIT: Tipo
Código PHP:
public client_putinserver(id)
{
    
g_awpfire[id] = false
    g_awpfrost
[id] = false
}

if (
g_awpfire[id]) g_awpfrost[id] = false
else if (g_awpfrost[id]) g_awpfire[id] = false 
Creo que ahi esta bien.. Vos proba
Free agent - Vendo plugins, mods o apps del foro IPB (Invision community)
Contactarme vía Discord >>> AtselTV#8202
Responder
#9
Yo te diria que podrias hacer algo asi

Código PHP:
switch (g_awp[attacker])
{
        case 
1:    Congelar(victim)
        case 
2:    Quemar(victim)


Y para darle la AWP que congela pon

Código PHP:
g_awp[id] = 

o la que quema

Código PHP:
g_awp[id] = 

y para removerla

Código PHP:
g_awp[id] = 
Responder
#10
como dijo unrealT pon los comentarios afuera de las etiquetas

Saludos

sobre el tutorial creo que esta bueno , si podrias hacerlo para Cs normal osea normal pacman xD sin el ZP pacman xD
(10/10/2014, 06:38 PM)RauliTop escribió:
(10/10/2014, 04:40 PM)ivan escribió: no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos Thats what she saidtutoriales Proud me encataan Whatever
Responder
#11
habiendo g_currentweapon utilizas get_user_weapon?
(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
#12
(02/05/2014, 04:47 PM)RauliTop escribió: habiendo g_currentweapon utilizas get_user_weapon?

en 4.2 no viene por eso lo puso.

ademas puso g_level no se para que,
en todo caso deberia ir g_level primero y despues llamar a la native get_user_weapon

yo usaria un enum para asignarle la awp.
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#13
ah vale, creí haber leído que lo probó en 4.3
(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
#14
(02/05/2014, 12:20 PM)K.- escribió: como dijo unrealT pon los comentarios afuera de las etiquetas

Saludos

sobre el tutorial creo que esta bueno , si podrias hacerlo para Cs normal osea normal pacman xD sin el ZP pacman xD

Osea para el hns O.o

(02/05/2014, 12:10 PM)UnrealT escribió: Yo te diria que podrias hacer algo asi

Código PHP:
switch (g_awp[attacker])
{
        case 
1:    Congelar(victim)
        case 
2:    Quemar(victim)


Y para darle la AWP que congela pon

Código PHP:
g_awp[id] = 

o la que quema

Código PHP:
g_awp[id] = 

y para removerla

Código PHP:
g_awp[id] = 

se pero seme ase mejor ami manera :3

(02/05/2014, 05:19 PM)roccoxx escribió:
(02/05/2014, 04:47 PM)RauliTop escribió: habiendo g_currentweapon utilizas get_user_weapon?

en 4.2 no viene por eso lo puso.

ademas puso g_level no se para que,
en todo caso deberia ir g_level primero y despues llamar a la native get_user_weapon

yo usaria un enum para asignarle la awp.

xd no uso las demas por q me gusta mi manera . pero grax igual
Responder
#15
y como podria hacer para que no todas las balas congelen ejemplo que congelen 1 o 2 balas random?
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#16
(07/05/2014, 11:52 AM)kikizon2 escribió: y como podria hacer para que no todas las balas congelen ejemplo que congelen 1 o 2 balas random?

Código PHP:
switch (random_num(0,1))
{
        case 
0:{
                   
Congelar(victim)
                   
g_awp[id] = 1
        
}
        case 
1:{
                  
Quemar(victim)
                   
g_awp[id] = 2
        
}

Responder
#17
Error: Invalid statement; not in switch on line 7193
Warning: Expression has no effect on line 7193
Error: Expected token: ";", but found ":" on line 7193
Error: Invalid expression, assumed zero on line 7193

case CSW_AWP:
Responder
#18
(03/02/2015, 04:28 AM)Ch3p escribió: Error: Invalid statement; not in switch on line 7193
Warning: Expression has no effect on line 7193
Error: Expected token: ";", but found ":" on line 7193
Error: Invalid expression, assumed zero on line 7193

case CSW_AWP:


Yo lo reemplaze por esto :p
Código PHP:
if(CSW_AWP
    {
        if (
g_awpfire[id])
        {
        
set_pev(idpev_weaponmodel2model_awp_fire)
        }
        else if (
g_awpfrost[id])
        {
        
set_pev(idpev_weaponmodel2model_awp_frost)
        }
    } 

Pero me dejo un warning :c
Tan malo no soyWhatever
Responder
#19
ayuuda como la ago para un menu normal soy nuevo en esto Cutecry
Responder
#20
(26/04/2020, 03:23 PM)sNk escribió: ayuuda como la ago para un menu normal soy nuevo en esto Cutecry

Hola, estan un poco mal codeado lo que hice por que recien empezaba xd, pronto lo actualizare asi lo podras usar sin ningun bug;

Código PHP:
switch (item)
{
           case 
0: { 
                     
g_awpfrost[id] = true
                     g_awpfire
[id] = false 
           
}
           case 
1: {
                    
g_awpfire[id] = true
                    g_awpfrost
[id] = false
           



eso agregas en el handle de tu menu; si tenes los menus viejos en la parte del switch lo cambias por key; y es el otro le pones item(O DEPENDE DE COMO LO HAYAS PUESTO xd)....
Responder
#21
amigo kuando compilo me tira estos errrores

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

C:\Users\Franco\ServidorDedicado\test.sma(141) : warning 203: symbol is never used: "fire_player"
C:\Users\Franco\ServidorDedicado\test.sma(141) : warning 203: symbol is never used: "frost_man"
Header size: 260 bytes
Code size: 836 bytes
Data size: 748 bytes
Stack/heap size: 16384 bytes; estimated max. usage=42 cells (168 bytes)
Total requirements: 18228 bytes

2 Warnings.
Done.
[Finished in 0.2s]

mi codigo q hize es esto soy nuevo por eso pido ayuda

Código PHP:
#include <amxmodx>

new boolg_awpfrost[33// variable de la awp Frost
new boolg_awpfire[33// variale de la awp  Fuego

public plugin_init()
{
    
register_plugin("Menu Basico""1.0""[Anti]");
    
register_clcmd"say /menu""cmdMenu" );
}
public 
cmdMenu(id)
{
    new 
gMenu menu_create("\r[HNS] \wArmas especiales""handlerMenu")

    
menu_additem(gMenu"\wAwp congeladora""1")
    
menu_additem(gMenu"\dAwp fuego""2")
    
menu_additem(gMenu"\yOpcion #3""3")

    
menu_display(idgMenu0)
}
public 
handlerMenu(idmenuitem)
{
    if ( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    switch(
item)
    {
        case 
0: {
            
g_awpfrost[id] = true
            g_awpfire
[id] = false
        
}
        case 
1: {
            
g_awpfire[id] = true
            g_awpfrost
[id] = false
        
}
    }
    return 
PLUGIN_HANDLED;

frost_man(victim)
{
    
// Get origin
    
static Float:originF[3]
    
pev(victimpev_originoriginF)
    
    
// Frost nade explode sound
    
engfunc(EngFunc_EmitSoundvictimCHAN_WEAPONgrenade_frost[random_num(0sizeof grenade_frost 1)], 1.0ATTN_NORM0PITCH_NORM)
    
    
// Only effect alive unfrozen zombies
    
if (!is_user_alive(victim) || !g_zombie[victim] || g_frozen[victim] || g_nodamage[victim])
        return;
    
    
// Freeze icon?
    
if (get_pcvar_num(cvar_hudicons))
    {
        
message_begin(MSG_ONE_UNRELIABLEg_msgDamage_victim)
        
write_byte(0// damage save
        
write_byte(0// damage take
        
write_long(DMG_DROWN// damage type - DMG_FREEZE
        
write_coord(0// x
        
write_coord(0// y
        
write_coord(0// z
        
message_end()
    }
    
    
// Light blue glow while frozen
    #if defined HANDLE_MODELS_ON_SEPARATE_ENT
    
fm_set_rendering(g_ent_playermodel[victim], kRenderFxGlowShell0150250kRenderNormal1)
    
#else
    
fm_set_rendering(victimkRenderFxGlowShell0150250kRenderNormal1)
    
#endif
    
    // Freeze sound
    
engfunc(EngFunc_EmitSoundvictimCHAN_BODYgrenade_frost_player[random_num(0sizeof grenade_frost_player 1)], 1.0ATTN_NORM0PITCH_NORM)
    
    
// Get freeze duration setting
    
static Float:freezeduration
    freezeduration 
get_pcvar_float(cvar_freezeduration)
    
    
// Add a blue tint to their screen
    
message_begin(MSG_ONE_UNRELIABLEg_msgScreenFade_victim)
    
write_short(UNIT_SECOND*1// duration
    
write_short(floatround(UNIT_SECOND*freezeduration)) // hold time
    
write_short(FFADE_IN// fade type
    
write_byte(0// red
    
write_byte(50// green
    
write_byte(200// blue
    
write_byte(100// alpha
    
message_end()
    
    
// Prevent from jumping
    
if (pev(victimpev_flags) & FL_ONGROUND)
        
set_pev(victimpev_gravity999999.9// set really high
    
else
        
set_pev(victimpev_gravity0.000001// no gravity
    
    // Set a task to remove the freeze
    
g_frozen[victim] = true;
    
set_task(freezeduration/2"remove_freeze"victim)
}

// y el otro para el effecto de fuego

fire_player(victim)
{
    
// Get origin
    
static Float:originF[3]
    
pev(victimpev_originoriginF)
    
    
// Fire nade explode sound
    
engfunc(EngFunc_EmitSoundvictimCHAN_WEAPONgrenade_fire_player[random_num(0sizeof grenade_fire_player 1)], 1.0ATTN_NORM0PITCH_NORM)
    
    
// Only effect alive zombies
    
if (!is_user_alive(victim) || !g_zombie[victim] || g_nodamage[victim])
        return;
    
    
// Heat icon?
    
if (get_pcvar_num(cvar_hudicons))
    {
        
message_begin(MSG_ONE_UNRELIABLEg_msgDamage_victim)
        
write_byte(0// damage save
        
write_byte(0// damage take
        
write_long(DMG_BURN// damage type
        
write_coord(0// x
        
write_coord(0// y
        
write_coord(0// z
        
message_end()
    }
    
    
// Our task params
    
static params[1]
    
    if (
g_nemesis[victim]) // fire duration (nemesis takes less)
        
params[0] = get_pcvar_num(cvar_fireduration)
    else
    
params[0] = get_pcvar_num(cvar_fireduration)*5
    
    
// Set burning task on victim
    
set_task(0.1"burning_flame"victim+TASK_BLOODparamssizeof params)

Responder
#22
(26/04/2020, 06:05 PM)sNk escribió: amigo kuando compilo me tira estos errrores

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

C:\Users\Franco\ServidorDedicado\test.sma(141) : warning 203: symbol is never used: "fire_player"
C:\Users\Franco\ServidorDedicado\test.sma(141) : warning 203: symbol is never used: "frost_man"
Header size: 260 bytes
Code size: 836 bytes
Data size: 748 bytes
Stack/heap size: 16384 bytes; estimated max. usage=42 cells (168 bytes)
Total requirements: 18228 bytes

2 Warnings.
Done.
[Finished in 0.2s]

mi codigo q hize es esto soy nuevo por eso pido ayuda

Código PHP:
#include <amxmodx>

new boolg_awpfrost[33// variable de la awp Frost
new boolg_awpfire[33// variale de la awp  Fuego

public plugin_init()
{
    
register_plugin("Menu Basico""1.0""[Anti]");
    
register_clcmd"say /menu""cmdMenu" );
}
public 
cmdMenu(id)
{
    new 
gMenu menu_create("\r[HNS] \wArmas especiales""handlerMenu")

    
menu_additem(gMenu"\wAwp congeladora""1")
    
menu_additem(gMenu"\dAwp fuego""2")
    
menu_additem(gMenu"\yOpcion #3""3")

    
menu_display(idgMenu0)
}
public 
handlerMenu(idmenuitem)
{
    if ( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    switch(
item)
    {
        case 
0: {
            
g_awpfrost[id] = true
            g_awpfire
[id] = false
        
}
        case 
1: {
            
g_awpfire[id] = true
            g_awpfrost
[id] = false
        
}
    }
    return 
PLUGIN_HANDLED;

frost_man(victim)
{
    
// Get origin
    
static Float:originF[3]
    
pev(victimpev_originoriginF)
    
    
// Frost nade explode sound
    
engfunc(EngFunc_EmitSoundvictimCHAN_WEAPONgrenade_frost[random_num(0sizeof grenade_frost 1)], 1.0ATTN_NORM0PITCH_NORM)
    
    
// Only effect alive unfrozen zombies
    
if (!is_user_alive(victim) || !g_zombie[victim] || g_frozen[victim] || g_nodamage[victim])
        return;
    
    
// Freeze icon?
    
if (get_pcvar_num(cvar_hudicons))
    {
        
message_begin(MSG_ONE_UNRELIABLEg_msgDamage_victim)
        
write_byte(0// damage save
        
write_byte(0// damage take
        
write_long(DMG_DROWN// damage type - DMG_FREEZE
        
write_coord(0// x
        
write_coord(0// y
        
write_coord(0// z
        
message_end()
    }
    
    
// Light blue glow while frozen
    #if defined HANDLE_MODELS_ON_SEPARATE_ENT
    
fm_set_rendering(g_ent_playermodel[victim], kRenderFxGlowShell0150250kRenderNormal1)
    
#else
    
fm_set_rendering(victimkRenderFxGlowShell0150250kRenderNormal1)
    
#endif
    
    // Freeze sound
    
engfunc(EngFunc_EmitSoundvictimCHAN_BODYgrenade_frost_player[random_num(0sizeof grenade_frost_player 1)], 1.0ATTN_NORM0PITCH_NORM)
    
    
// Get freeze duration setting
    
static Float:freezeduration
    freezeduration 
get_pcvar_float(cvar_freezeduration)
    
    
// Add a blue tint to their screen
    
message_begin(MSG_ONE_UNRELIABLEg_msgScreenFade_victim)
    
write_short(UNIT_SECOND*1// duration
    
write_short(floatround(UNIT_SECOND*freezeduration)) // hold time
    
write_short(FFADE_IN// fade type
    
write_byte(0// red
    
write_byte(50// green
    
write_byte(200// blue
    
write_byte(100// alpha
    
message_end()
    
    
// Prevent from jumping
    
if (pev(victimpev_flags) & FL_ONGROUND)
        
set_pev(victimpev_gravity999999.9// set really high
    
else
        
set_pev(victimpev_gravity0.000001// no gravity
    
    // Set a task to remove the freeze
    
g_frozen[victim] = true;
    
set_task(freezeduration/2"remove_freeze"victim)
}

// y el otro para el effecto de fuego

fire_player(victim)
{
    
// Get origin
    
static Float:originF[3]
    
pev(victimpev_originoriginF)
    
    
// Fire nade explode sound
    
engfunc(EngFunc_EmitSoundvictimCHAN_WEAPONgrenade_fire_player[random_num(0sizeof grenade_fire_player 1)], 1.0ATTN_NORM0PITCH_NORM)
    
    
// Only effect alive zombies
    
if (!is_user_alive(victim) || !g_zombie[victim] || g_nodamage[victim])
        return;
    
    
// Heat icon?
    
if (get_pcvar_num(cvar_hudicons))
    {
        
message_begin(MSG_ONE_UNRELIABLEg_msgDamage_victim)
        
write_byte(0// damage save
        
write_byte(0// damage take
        
write_long(DMG_BURN// damage type
        
write_coord(0// x
        
write_coord(0// y
        
write_coord(0// z
        
message_end()
    }
    
    
// Our task params
    
static params[1]
    
    if (
g_nemesis[victim]) // fire duration (nemesis takes less)
        
params[0] = get_pcvar_num(cvar_fireduration)
    else
    
params[0] = get_pcvar_num(cvar_fireduration)*5
    
    
// Set burning task on victim
    
set_task(0.1"burning_flame"victim+TASK_BLOODparamssizeof params)


No las estás usando.
Corazón I dream of someday being able to have your near. Corazón
[Imagen: 76561199006140497.png]
Responder
#23
como amigo no entiendo
Responder
#24
(26/04/2020, 08:07 PM)sNk escribió: como amigo no entiendo

te falta registrar el frost y fire en fw takedamage; es decir no completaste la guia te salteaste un paso
Responder
#25
un amigo me iso esto pero cuando alguien baja una escale se kiebra aparte ni lo congela solo le da un brillo ayuda amigo soy nuevo si supiera no estaria aka pidiendo ayuda

Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <fakemeta>
#include <fun>

new g_awpfrost[33];
new 
g_glassSprg_msgDamageg_msgScreenFade;

public 
plugin_init() {
    
register_plugin("Menu Basico""1.0""[Anti]");
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage");
    
register_clcmd("say /menu""cmdMenu");

    
g_msgDamage get_user_msgid("Damage")
    
g_msgScreenFade get_user_msgid("ScreenFade")
}
public 
plugin_precache() {
    
g_glassSpr engfunc(EngFunc_PrecacheModel"models/glassgibs.mdl")
}
public 
cmdMenu(id) {
    new 
gMenu menu_create("\r[HNS] \wArmas especiales""handlerMenu")

    
menu_additem(gMenu"\wAwp congeladora""1")

    
menu_display(idgMenu0)
}
public 
handlerMenu(idmenuitem) {
    if(
item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; }
    switch(
item) {
        case 
0: {
            
g_awpfrost[id] = true
            give_item
(id"weapon_awp");
        }
    }
    return 
PLUGIN_HANDLED;
}
public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type) {
    if(
victim == attacker || !is_user_connected(attacker)) return HAM_IGNORED;

    if(
get_user_weapon(attacker) == CSW_AWP) {
        if(
g_awpfrost[attacker]) {
            
frost_man(victim)
        }
    }
    return 
HAM_SUPERCEDE;
}
frost_man(victim)
{
    
// Get origin
    
new Float:originF[3]
    
pev(victimpev_originoriginF)

    
// Only effect alive unfrozen zombies
    
if (!is_user_alive(victim)) return;

    
message_begin(MSG_ONE_UNRELIABLEg_msgDamage_victim)
    
write_byte(0// damage save
    
write_byte(0// damage take
    
write_long(DMG_DROWN// damage type - DMG_FREEZE
    
write_coord(0// x
    
write_coord(0// y
    
write_coord(0// z
    
message_end()

    
set_rendering(victimkRenderFxGlowShell0150250kRenderNormal1)

    new 
Float:freezeduration
    freezeduration 
2.0

    
// Add a blue tint to their screen
    
message_begin(MSG_ONE_UNRELIABLEg_msgScreenFade_victim)
    
write_short((1<<12)*1// duration
    
write_short(floatround((1<<12)*freezeduration)) // hold time
    
write_short(0x0000// fade type
    
write_byte(0// red
    
write_byte(50// green
    
write_byte(200// blue
    
write_byte(100// alpha
    
message_end()

    
// Prevent from jumping
    
if (pev(victimpev_flags) & FL_ONGROUND) {
        
set_pev(victimpev_gravity999999.9// set really high
    
}
    else {
        
set_pev(victimpev_gravity0.000001// no gravity
    
}
    
set_task(freezeduration/2"remove_freeze"victim)
}
public 
remove_freeze(id) {
    if (!
is_user_alive(id)) return;

    
set_rendering(id)

    
// Get player's origin
    
new Float:origin2F[3]
    
pev(idpev_originorigin2F)

    
// Glass shatter
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin2F0)
    
write_byte(TE_BREAKMODEL// TE id
    
engfunc(EngFunc_WriteCoordorigin2F[0]) // x
    
engfunc(EngFunc_WriteCoordorigin2F[1]) // y
    
engfunc(EngFunc_WriteCoordorigin2F[2]+24.0// z
    
write_coord(16// size x
    
write_coord(16// size y
    
write_coord(16// size z
    
write_coord(random_num(-5050)) // velocity x
    
write_coord(random_num(-5050)) // velocity y
    
write_coord(25// velocity z
    
write_byte(10// random velocity
    
write_short(g_glassSpr// model
    
write_byte(10// count
    
write_byte(25// life
    
write_byte(0x01// flags
    
message_end()

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)