|
Veteran Member
Join Date: Mar 2008
Location: Lithuania
|

05-10-2009
, 14:12
Re: Ham_TakeDamage, SetHamParamFloat
|
#2
|
Yes
P.S. no errors in log, good compiling.
I've set also multiplier to 10.0 to test it better, but won't multiplier only prints message.
Okey here you code :
PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <fun>
#define PLUGIN "Star Wars"
#define AUTHOR "xbatista"
#define VERSION "1.0"
#define JABBA_SPEED 175.0
#define DARTH_MAUL_SPEED 390.0
#define OBIVAN_SPEED 360.0
#define m_flNextSecondaryAttack 47
#define fm_cs_set_user_nobuy(%1) set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0) ) // no weapon buy
new PlayerClassT[33];
new PlayerClassCT[33];
const m_pClientActiveItem = 374;
enum // Dark side class numbers
{
JABBA = 0,
DARTH_VADER,
SITH_LORD,
DARTH_MAUL
};
enum // Light side class numbers
{
YODA = 0,
OBI_VAN,
LUKE,
SKY_TROOPER
};
new const DARK_V_SABER[] = "models/starwars/red_saber2.mdl";
new const LIGHT_V_SABER[] = "models/starwars/blue_saber2.mdl";
new const g_saber_hit[][] =
{
"starwars/hit1.wav",
"starwars/hit2.wav",
"starwars/hit3.wav"
}
new const g_saber_miss[][] =
{
"starwars/miss1.wav",
"starwars/miss2.wav"
}
new jabba_hp,darth_vader_hp, sith_hp, darth_vader_visible, sith_gravity,
darth_maul_gravity; // Dark side abbilities
new yoda_regen, luke_hp, luke_damage, yoda_gravity; // Light side abbilities
new g_freezetime, g_iMaxPlayers;
new g_iCurWeapon[33];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
// Dark side class abbility
jabba_hp = register_cvar("sw_jabba_hp", "255")
darth_vader_hp = register_cvar("sw_vader_hp", "140")
darth_vader_visible = register_cvar("sw_vader_visible", "4.0")
sith_hp = register_cvar("sw_sith_hp", "130")
sith_gravity = register_cvar( "sw_sith_gv", "300" );
darth_maul_gravity = register_cvar( "sw_maul_gv", "500" );
// Light side class abbility
yoda_regen = register_cvar("sw_yoda_regen", "1")
yoda_gravity = register_cvar( "sw_yoda_gv", "300" );
luke_hp = register_cvar("sw_luke_hp", "150")
luke_damage = register_cvar("sw_luke_damage", "1.7")
register_logevent("Logevent_Round_Start", 2, "1=Round_Start");
register_event("HLTV", "Event_New_Round", "a", "1=0", "2=0");
register_event("CurWeapon", "Ev_CurWeapon", "be", "1=1");
RegisterHam(Ham_Spawn, "player", "Fw_PlayerSpawn", 1);
RegisterHam(Ham_TakeDamage, "player", "Fw_PlayerDamaged", 1)
// RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "Knife_SecondaryAttack")
register_forward(FM_CmdStart, "Forward_CmdStart" );
register_forward(FM_EmitSound, "Fw_EmitSound")
register_message(get_user_msgid("StatusIcon"), "Message_StatusIcon")
g_iMaxPlayers = get_maxplayers();
}
public plugin_precache()
{
new iNum;
for (iNum = 0; iNum < sizeof g_saber_miss; iNum++)
engfunc(EngFunc_PrecacheSound, g_saber_miss[iNum])
for (iNum = 0; iNum < sizeof g_saber_hit; iNum++)
engfunc(EngFunc_PrecacheSound, g_saber_hit[iNum])
engfunc(EngFunc_PrecacheModel, DARK_V_SABER);
engfunc(EngFunc_PrecacheModel, LIGHT_V_SABER);
}
public Message_StatusIcon(iMsgId, MSG_DEST, id)
{
static szIcon[5]
get_msg_arg_string(2, szIcon, 4)
if( szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z' )
{
if( get_msg_arg_int(1))
{
fm_cs_set_user_nobuy(id)
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public Fw_EmitSound(id, channel, sample[], Float:volume, Float:attn, flag, pitch)
{
if(!is_user_connected(id))
return FMRES_IGNORED
if (sample[0] == 'w' && sample[1] == 'e' && sample[8] == 'k' && sample[9] == 'n')
{
switch(sample[17])
{
case 'l':
return FMRES_SUPERCEDE
case 's', 'w':
{
emit_sound(id, CHAN_WEAPON, g_saber_miss[random(sizeof g_saber_miss)], volume, attn, flag, pitch)
return FMRES_SUPERCEDE;
}
case 'b', '1', '2', '3', '4':
{
emit_sound(id, CHAN_WEAPON, g_saber_hit[random(sizeof g_saber_hit)], volume, attn, flag, pitch)
return FMRES_SUPERCEDE;
}
}
}
return FMRES_IGNORED;
}
/*public Knife_SecondaryAttack( iEnt )
{
set_pdata_float(iEnt, m_flNextSecondaryAttack, 20.0, 4)
return HAM_SUPERCEDE
} */
public Forward_CmdStart( id, uc_handle, seed )
{
static Buttons ; Buttons = get_uc( uc_handle, UC_Buttons );
if( ( Buttons & IN_ATTACK2 ) && get_user_weapon( id ) == CSW_KNIFE )
{
set_uc( uc_handle, UC_Buttons, Buttons & ~IN_ATTACK2 )
return FMRES_HANDLED
}
return FMRES_IGNORED
}
public Fw_PlayerSpawn(id)
{
if ( !is_user_alive(id) )
return;
set_user_rendering(id); // Set rendering None.
strip_user_weapons(id); // Strip user weapons.
give_item(id, "weapon_knife"); // And give him knife.
// Dark side class random
PlayerClassT[id] = random_num(0, 3)
// Light side class random
PlayerClassCT[id] = random_num(0, 3)
if ( get_user_team(id) == 1 ) // User team Dark
{
if ( PlayerClassT[id] == JABBA ) // Set Jabba health
{
set_user_health(id, get_pcvar_num(jabba_hp));
}
else if ( PlayerClassT[id] == DARTH_VADER ) // Set Darth vader health and invisibility
{
set_user_health(id, get_pcvar_num(darth_vader_hp));
dar_vader_visible(id)
}
else if ( PlayerClassT[id] == SITH_LORD ) // Set Sith Lord health,gravity
{
set_user_health(id, get_pcvar_num(sith_hp));
set_pev( id, pev_gravity, get_pcvar_float( sith_gravity ) / 800.0 );
}
else if ( PlayerClassT[id] == DARTH_MAUL ) // Set Darth Maul gravity
{
set_pev( id, pev_gravity, get_pcvar_float( darth_maul_gravity ) / 800.0 );
}
}
else if ( get_user_team(id) == 2 ) // User team Light
{
if ( PlayerClassCT[id] == YODA ) // Set Yoda gravity and regen
{
yoda_regeneration(id)
set_pev( id, pev_gravity, get_pcvar_float( yoda_gravity ) / 800.0 );
}
else if ( PlayerClassCT[id] == LUKE ) // Set Darth vader health and invisibility
{
set_user_health(id, get_pcvar_num(luke_hp));
}
}
// client_print(id, print_chat, "xxx");
}
public Fw_PlayerDamaged(id, inflictor, attacker, damage, damagebits)
{
if ( !(1 <= attacker <= g_iMaxPlayers) )
return HAM_IGNORED;
if ( get_user_weapon(attacker) == CSW_KNIFE && PlayerClassCT[attacker] == LUKE && get_user_team(attacker) == 2 )
{
SetHamParamFloat(4, damage * get_pcvar_float(luke_damage))
return HAM_HANDLED;
}
if ( get_user_weapon(attacker) == CSW_KNIFE && PlayerClassCT[id] == OBI_VAN && get_user_team(attacker) == 1 )
{
set_pdata_float(id, 108, 1.0)
return HAM_HANDLED;
}
if ( random_num(0, 99) < 50 && get_user_weapon(attacker) == CSW_KNIFE )
{
client_print(id, print_chat, "Damage!");
SetHamParamFloat(4, damage * 10.0)
return HAM_HANDLED;
}
return HAM_IGNORED;
}
public Ev_CurWeapon(id)
{
if(!is_user_alive(id))
return;
new weapon = read_data(2)
if( g_iCurWeapon[id] == weapon )
{
// player hasn't changed his weapon
// he has just fired or reloaded or zoomed
// don't add speed to him
return;
}
g_iCurWeapon[id] = weapon
if ( get_user_team(id) == 1 ) // User team Dark
{
if ( weapon == CSW_KNIFE )
{
set_pev(id, pev_viewmodel2, DARK_V_SABER)
}
if ( !g_freezetime )
{
if ( PlayerClassT[id] == JABBA ) // Set Jabba speed
{
set_pev(id, pev_maxspeed, JABBA_SPEED)
}
else if ( PlayerClassT[id] == DARTH_MAUL ) // Set Darth maul speed
{
set_pev(id, pev_maxspeed, DARTH_MAUL_SPEED)
}
}
}
else if ( get_user_team(id) == 2 )
{
if ( weapon == CSW_KNIFE )
{
set_pev(id, pev_viewmodel2, LIGHT_V_SABER)
}
if ( !g_freezetime )
{
if ( PlayerClassCT[id] == OBI_VAN ) // Set Obi van speed
{
set_pev(id, pev_maxspeed, OBIVAN_SPEED)
}
}
}
}
public Event_New_Round()
{
g_freezetime = true;
}
public Logevent_Round_Start()
{
g_freezetime = false;
for(new id = 1; id <= g_iMaxPlayers; id++)
{
if( is_user_alive(id) )
{
g_iCurWeapon[id] = 0
// This should trigger a CurWeapon event
set_pdata_cbase(id, m_pClientActiveItem, -1, 5)
}
}
}
public dar_vader_invisible(id)
{
if( PlayerClassT[id] == DARTH_VADER && get_user_team(id) == 1 )
{
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
set_task(get_pcvar_float(darth_vader_visible), "dar_vader_visible", id)
}
}
public dar_vader_visible(id)
{
if( PlayerClassT[id] == DARTH_VADER && get_user_team(id) == 1 )
{
set_user_rendering(id, kRenderFxGlowShell, random_num(100,255), random_num(100,255), random_num(100,255), kRenderTransAlpha, 70)
set_task( get_pcvar_float(darth_vader_visible), "dar_vader_invisible", id)
}
}
public yoda_regeneration(id)
{
if( PlayerClassCT[id] == YODA && get_user_team(id) == 2 && get_user_health(id) < 255)
{
set_user_health(id,get_user_health(id) + get_pcvar_num(yoda_regen))
set_task(1.0, "yoda_regeneration", id)
}
}
Last edited by xbatista; 05-10-2009 at 14:20.
|
|