Raised This Month: $12 Target: $400
 3% 

Duda con HAM


  
 
 
Thread Tools Display Modes
YakumoHiratsuhi
Veteran Member
Join Date: Dec 2010
Location: Dreαmlαnd.
Old 09-28-2013 , 13:57   Re: Duda con HAM
#11

Quote:
Originally Posted by alan_el_more View Post
Porque tenes que registrar el TakeDamage a cada bot que entra al server.

Creo que era algo asi
PHP Code:
public client_putinserver(id)
{
   if(
is_user_bot(id))
      
RegisterHamFromEntity(Ham_TakeDamageid"fw_TakeDamage")

Tendrías que buscar bien para estar seguro
->

Solo se debe registrar una vez la entidad del bot, no es necesario cada vez que entra uno.
PHP Code:
public client_putinserver(id)
{
    static 
botregister
    
if(!botregister && is_user_bot(id))
        
RegisterHamFromEntity(Ham_TakeDamageid"fw_TakeDamage")

Also, esto solo sucede cuando utilizas ZBots o los bots del CZ, porque con los podbots esto no ocurre.
__________________
"Podra parecer ridiculo o imposible, pero este es el camino que seguimos los verdaderos hombres, si hay un muro en el camino, lo derribamos, si no hay camino, haremos uno, con nuestras propias manos, porque el magma de nuestro corazón arde en llamas."
YakumoHiratsuhi is offline
Send a message via MSN to YakumoHiratsuhi
KuvZz
Member
Join Date: Sep 2013
Location: Spain
Old 09-28-2013 , 17:50   Re: Duda con HAM
#12

Sigue sin funcionar :/ No me gusta ser tan pesado pero llevo toda la tarde y no sé que puede ser, lo siento :S
Voy a dejar el plugin entero, quizás el error no esté donde creo que estaba. Lo dejo tanto en PHP como en .sma
Gracias por toda la ayuda.
PHP Code:
/* Mini Clases */

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <hamsandwich>

#define PLUGIN "Mini clases"
#define VERSION "1.0"
#define AUTHOR "KuvZz"

new bool:DmgKnife[33]
new 
bool:DmgM4[33]
new 
bool:DmgAK[33]
new 
bool:DmgAWP[33]
new 
bool:DmgDeagle[33]
new 
bool:DmgHE[33], g_maxplayers

const DMG_CSGRENADE = (1<<24)

public 
plugin_init()
{
    
register_plugin(PLUGIN,VERSION,AUTHOR )
    
register_clcmd("say /clase""Clases")
    
register_clcmd("say_team /clase" "Clases")
    
register_clcmd("say /infoclase""Info")
    
register_clcmd("say_team /infoclase""Info")
    
register_cvar("asesino""845")
    
register_cvar("hibrido""500")
    
register_cvar("juggernaut""200")
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
    
g_maxplayers get_maxplayers()
}

public 
plugin_precache() //Precacheo de sonidos para que los usuarios lo descarguen
{
    
precache_sound("Server/select.wav")
    
precache_sound("Server/fail.wav")
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedmgtype)
{
    if(
victim == attacker || !is_user_connected(attacker))
        return 
HAM_IGNORED;
    
    static 
weapon
    weapon 
get_user_weapon(attacker)
    
    if(
DmgKnife[attacker] && weapon == CSW_KNIFE)
        
damage *= 100.0
    
else if (DmgM4[attacker] && weapon == CSW_M4A1)
        
damage *= 2.0
    
else if (DmgAK[attacker] && weapon == CSW_AK47)
        
damage *= 2.0
    
else if (DmgAWP[attacker] && weapon == CSW_AWP)
        
damage *= 100.0
    
else if (DmgDeagle[attacker] && weapon == CSW_DEAGLE)
        
damage *= 100.0
    
else if (DmgHE[attacker] && (dmgtype DMG_CSGRENADE))
        
damage *= 100.0
    
    
return HAM_HANDLED;
}

public 
Clases(id//OPCIONES DE CLASES
{
    new 
Menu menu_create("\rMenu de Clases por: \wKuvZz""Clase")
    
menu_additem(Menu"\wAsesino" "1"0)
    
menu_additem(Menu"\wCarnicero" "2"0)
    
menu_additem(Menu"\wArtificiero" "3"0)
    
menu_additem(Menu"\wSniper" "4"0)
    
menu_additem(Menu"\wFusiles mejorados" "5"0)
    
menu_additem(Menu"\wFantasma" "6"0)
    
menu_additem(Menu"\wJuggernaut" "7"0)
    
menu_additem(Menu"\wPistolero" "8"0)
    
menu_additem(Menu"\wDefensor" "9"0)
    
menu_additem(Menu"\wADMIN" "10"0)
       
    
menu_setprop(Menu,MPROP_EXITNAME,"Salir")
    
menu_setprop(MenuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idMenu0)
    return 
PLUGIN_CONTINUE
}

public 
Clase(idMenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(Menu)   
        return 
PLUGIN_HANDLED
    
}
    
    new 
iData[6], iAccessiCallbackiName[64];
    
menu_item_getinfo(MenuitemiAccessiData5iName63iCallback)
    
    switch (
str_to_num(iData)) 
    {
       
        case 
1:
    {
        
client_cmd(id"spk ^"Server/select.wav^"")
        
ChatColor(id"!g[Class] !yEres un !teamasesino")
        
strip_user_weapons(id)
        
give_item(id"weapon_tmp")
        
set_user_health(id75)
        
set_user_maxspeed(idfloat(get_cvar_num("asesino")))
        
set_user_gravity(id1.0)
         }
        case 
2:
         {
        
client_cmd(id"spk ^"Server/select.wav^"")
        
ChatColor(id"!g[Class] !yEres un !teamcarnicero")
        
strip_user_weapons(id)
        
give_item(id"weapon_knife")
        
set_user_health(id150)
        
DmgKnife[id] = true //Activar la modificación de daño
        
set_user_maxspeed(idfloat(get_cvar_num("hibrido")))
        
set_user_gravity(id0.4)
          }
    case 
3:
     {
        
client_cmd(id"spk ^"Server/select.wav^"")
        
ChatColor(id"!g[Class] !yEres un !teamartificiero")
        
strip_user_weapons(id)
        
give_item(id"weapon_hegrenade")
        
DmgHE[id] = true //Activar la modificación de daño
        
give_item(id"weapon_knife")
        
DmgKnife[id] = false //Quito el daño del cuchillo por si anteriormente se ha elegido una clase con éste para que no afecte a esta clase.
        
give_item(id"weapon_mp5navy")
        
give_item(id"weapon_p90")
        
give_item(id"weapon_usp")
        
set_user_gravity(id1.0)
        
set_user_health(id100)
          }
    case 
4:
     {
         
client_cmd(id"spk ^"Server/select.wav^"")
        
ChatColor(id"!g[Class] !yEres un !teamSniper")
        
strip_user_weapons(id)
        
give_item(id"weapon_awp")
        
give_item(id"weapon_knife")
        
DmgKnife[id] = false //Quito el daño del cuchillo por si anteriormente se ha elegido una clase con éste para que no afecte a esta clase.
        
DmgAWP[id] = true //Activar la modificación de daño
        
give_item(id"weapon_usp")
        
set_user_gravity(id1.0)
        
set_user_health(id100)
     }
    case 
5:
     {
         
client_cmd(id"spk ^"Server/select.wav^"")
        
ChatColor(id"!g[Class] !yObtuviste !teamdos fusiles mejorados")
        
strip_user_weapons(id)
        
give_item(id"weapon_m4a1")
        
give_item(id"weapon_ak47")
        
give_item(id"weapon_knife")
        
DmgKnife[id] = false //Quito el daño del cuchillo por si anteriormente se ha elegido una clase con éste para que no afecte a esta clase.
        
DmgM4[id] = true //Activar la modificación de daño
        
DmgAK[id] = true //Activar la modificación de daño
        
set_user_health(id100)
        
set_user_gravity(id1.0)
     }
    case 
6:
     {
         
client_cmd(id"spk ^"Server/select.wav^"")
        
ChatColor(id"!g[Class] !yEres un !teamfantasma")
        
strip_user_weapons(id)
        
give_item(id"weapon_mac10")
        
give_item(id"weapon_knife")
        
DmgKnife[id] = false //Quito el daño del cuchillo por si anteriormente se ha elegido una clase con éste para que no afecte a esta clase.
        
set_user_gravity(id1.0)
        
set_user_health(id75)
        
set_user_rendering(idkRenderFxGlowShell,  00016)
        
set_user_footsteps(id1//Testeando...
     
}
    case 
7:
     {
         
client_cmd(id"spk ^"Server/select.wav^"")
        
ChatColor(id"!g[Class] !yEres un !teamjuggernaut")
        
strip_user_weapons(id)
        
give_item(id"weapon_m249")
        
set_user_gravity(id1.5)
        
set_user_health(id200)
        
set_user_armor(id200)
        
set_user_maxspeed(idfloat(get_cvar_num("juggernaut")))
     }
    case 
8:
     {
         
client_cmd(id"spk ^"Server/select.wav^"")
        
ChatColor(id"!g[Class] !yEres un !teampistolero")
        
strip_user_weapons(id)
        
give_item(id"weapon_deagle")
        
DmgDeagle[id] = true
        give_item
(id"weapon_knife")
        
DmgKnife[id] = false //Quito el daño del cuchillo por si anteriormente se ha elegido una clase con éste para que no afecte a esta clase.
        
set_user_gravity(id1.0)
        
set_user_health(id100)
     }
    case 
9:
     {
         
client_cmd(id"spk ^"Server/select.wav^"")
        
ChatColor(id"!g[Class] !yEres un !teamdefensor")
        
strip_user_weapons(id)
        
give_item(id"weapon_shield")
        
give_item(id"weapon_usp")
        
give_item(id"weapon_knife")
        
DmgKnife[id] = false //Quito el daño del cuchillo por si anteriormente se ha elegido una clase con éste para que no afecte a esta clase.
        
give_item(id"weapon_hegrenade")
        
give_item(id"weapon_flashbang")
        
give_item(id"weapon_flashbang")
        
give_item(id"weapon_smokegrenade")
        
set_user_gravity(id1.0)
        
set_user_health(id100)
     }
    case 
10:
     {
         if (
is_user_admin(id))
        {
         
client_cmd(id"spk ^"Server/select.wav^"")
        
ChatColor(id"!g[Class] !yElegiste la clase de !teamADMIN")
        
strip_user_weapons(id)
        
give_item(id"weapon_m4a1")
        
give_item(id"weapon_g3sg1")
        
give_item(id"weapon_ak47")
        
give_item(id"weapon_deagle")
        
give_item(id"weapon_hegrenade")
        
give_item(id"weapon_flashbang")
        
give_item(id"weapon_knife")
        
DmgKnife[id] = false //Quito el daño del cuchillo por si anteriormente se ha elegido una clase con éste para que no afecte a esta clase.
        
set_user_gravity(id0.8)
        
set_user_health(id125)
             }
        else
        {
            
ChatColor(id"!g[INFO] !yNo eres !teamAdmin")
            
client_cmd(id"spk ^"Server/fail.wav^"")
             }
     }
} return 
PLUGIN_HANDLED;
}

public 
Info(id//OPCIONES DE INFORMACIÓN
{
    new 
Menu menu_create("\rInformacion de Clases""Infos")
    
menu_additem(Menu"\wInfo Asesino" "1"0)
    
menu_additem(Menu"\wInfo Hibrido" "2"0)
    
menu_additem(Menu"\wInfo Artificiero" "3"0)
    
menu_additem(Menu"\wInfo Sniper" "4"0)
    
menu_additem(Menu"\wInfo Fusiles mejorados" "5"0)
    
menu_additem(Menu"\wInfo Fantasma" "6"0)
    
menu_additem(Menu"\wInfo Juggernaut" "7"0)
    
menu_additem(Menu"\wInfo Pistolero" "8"0)
    
menu_additem(Menu"\winfo Defensor" "9"0)
    
menu_additem(Menu"\wInfo ADMIN" "10"0)
    
menu_additem(Menu"\rInformacion general" "11"0)
       
    
menu_setprop(Menu,MPROP_EXITNAME,"Salir")
    
menu_setprop(MenuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idMenu0)
    return 
PLUGIN_CONTINUE
}

public 
Infos(idMenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(Menu)   
        return 
PLUGIN_HANDLED
    
}
    
    new 
iData[6], iAccessiCallbackiName[64];
    
menu_item_getinfo(MenuitemiAccessiData5iName63iCallback)
    
    switch (
str_to_num(iData)) 
    {
       
         case 
1:
    {
    
ChatColor(id"!g[InfoClass] !yObtienes velocidad de movimiento y una TMP. Salud reducida")
    
client_cmd(id"spk ^"Server/select.wav^"")
    }
         case 
2:
    {
         
ChatColor(id"!g[InfoClass] !yCuchillo mortal. Velocidad de movimiento aumentada y gravedad reducida")
     
client_cmd(id"spk ^"Server/select.wav^"")
    }
         case 
3:
    {
         
ChatColor(id"!g[InfoClass] !yObtienes una granada de damage aumentado")
     
client_cmd(id"spk ^"Server/select.wav^"")
    }
    case 
4:
    {
         
ChatColor(id"!g[InfoClass] !yObtienes una AWP capaz de matar de una bala")
     
client_cmd(id"spk ^"Server/select.wav^"")
    }
    case 
5:
    {
         
ChatColor(id"!g[InfoClass] !yObtienes dos fusiles con el damage aumentado ligeramente")
     
client_cmd(id"spk ^"Server/select.wav^"")
    }
    case 
6:
    {
         
ChatColor(id"!g[InfoClass] !yObtienes invisibilidad, tus pasos no se oyen y un MAC10. Salud reducida")
     
client_cmd(id"spk ^"Server/select.wav^"")
    }
    case 
7:
    {
         
ChatColor(id"!g[InfoClass] !yObtienes unicamente una M249. Salud, armadura y gravedad aumentada. Velocidad reducida")
     
client_cmd(id"spk ^"Server/select.wav^"")
         }
    case 
8:
    {
         
ChatColor(id"!g[InfoClass] !yObtienes una Desert Eagle mortifera.")
     
client_cmd(id"spk ^"Server/select.wav^"")
    }
    case 
9:
    {
         
ChatColor(id"!g[InfoClass] !yObtienes un escudo y una pistola. (Por retocar)")
     
client_cmd(id"spk ^"Server/select.wav^"")
    }
    case 
10:
    {
         
ChatColor(id"!g[InfoClass] !yPaquete de admin con armas variadas, granadas y un poco mas de salud")
     
client_cmd(id"spk ^"Server/select.wav^"")
    }
    case 
11:
    {
         
ChatColor(id"!g[InfoClass] !teamNo se puede comprar ni recoger armas del suelo. Juega con las clases :D")
     
client_cmd(id"spk ^"Server/select.wav^"")
    }
    }
return 
PLUGIN_HANDLED
}
     
//Stock de ChatColor (para que funcione).
stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4"// Green Color
    
replace_all(msg190"!y""^1"// Default Color
    
replace_all(msg190"!team""^3"// Team Color
    
replace_all(msg190"!team2""^0"// Team2 Color
    
    
if (idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }

__________________

Last edited by KuvZz; 10-03-2013 at 08:14.
KuvZz is offline
alan_el_more
Veteran Member
Join Date: Jul 2008
Location: amxmodx-es.com
Old 09-28-2013 , 19:57   Re: Duda con HAM
#13

Lo unico que te falta es
PHP Code:
SetHamParamFloat(4damage
Al final del TakeDamage, antes del return
__________________

Last edited by alan_el_more; 09-28-2013 at 19:58.
alan_el_more is offline
KuvZz
Member
Join Date: Sep 2013
Location: Spain
Old 09-29-2013 , 13:30   Re: Duda con HAM
#14

Ya funciona perfectamente
__________________
KuvZz is offline
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


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


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