Member
Join Date: Sep 2013
Location: Spain
|
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(victim, inflictor, attacker, Float:damage, dmgtype)
{
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(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu, 0)
return PLUGIN_CONTINUE
}
public Clase(id, Menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(Menu)
return PLUGIN_HANDLED
}
new iData[6], iAccess, iCallback, iName[64];
menu_item_getinfo(Menu, item, iAccess, iData, 5, iName, 63, iCallback)
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(id, 75)
set_user_maxspeed(id, float(get_cvar_num("asesino")))
set_user_gravity(id, 1.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(id, 150)
DmgKnife[id] = true //Activar la modificación de daño
set_user_maxspeed(id, float(get_cvar_num("hibrido")))
set_user_gravity(id, 0.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(id, 1.0)
set_user_health(id, 100)
}
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(id, 1.0)
set_user_health(id, 100)
}
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(id, 100)
set_user_gravity(id, 1.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(id, 1.0)
set_user_health(id, 75)
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, 16)
set_user_footsteps(id, 1) //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(id, 1.5)
set_user_health(id, 200)
set_user_armor(id, 200)
set_user_maxspeed(id, float(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(id, 1.0)
set_user_health(id, 100)
}
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(id, 1.0)
set_user_health(id, 100)
}
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(id, 0.8)
set_user_health(id, 125)
}
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(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu, 0)
return PLUGIN_CONTINUE
}
public Infos(id, Menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(Menu)
return PLUGIN_HANDLED
}
new iData[6], iAccess, iCallback, iName[64];
menu_item_getinfo(Menu, item, iAccess, iData, 5, iName, 63, iCallback)
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 = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
replace_all(msg, 190, "!team2", "^0") // Team2 Color
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
__________________
Last edited by KuvZz; 10-03-2013 at 08:14.
|
|