Senior Member
Join Date: Apr 2014
Location: somewhere in universe
|
09-15-2017
, 19:10
Weapon Knockback Power
|
#1
|
Hello, i'm wondering how can i set properly the knockback power, for each weapon ent, in this way here...
Is this correct ?
PHP Code:
new g_currentweapon[33] // player current weapon id
new cvar_knockbackpower;
new Float:kb_weapon_power[31] = { -1.0, ... };
// Weapon entity names
new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
"weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
"weapon_ak47", "weapon_knife", "weapon_p90" }
new g_WeaponEnts[24][] =
{
"weapon_p228",
"weapon_scout",
"weapon_xm1014",
"weapon_mac10",
"weapon_aug",
"weapon_elite"
"weapon_fiveseven",
"weapon_ump45",
"weapon_sg550",
"weapon_famas",
"weapon_galil",
"weapon_usp",
"weapon_glock18",
"weapon_awp",
"weapon_mp5navy",
"weapon_m294",
"weapon_m3",
"weapon_m4a1",
"weapon_tmp",
"weapon_g3sg1",
"weapon_deagle",
"weapon_sg552",
"weapon_ak47",
"weapon_p90"
};
new g_Value[24][] =
{
"2.4",
"6.5",
"8.0",
"2.3",
"5.0",
"2.4"
"2.0",
"2.4",
"5.3",
"5.5",
"5.5",
"2.2",
"2.0",
"10.0",
"2.5",
"5.2",
"8.0",
"5.0",
"2.4",
"6.5",
"5.3",
"5.0",
"6.0",
"2.0"
};
public plugin_init()
{
cvar_knockbackpower = register_cvar("weapon_knockback", "1")
new a, key[64], values[64]
for (a = 0; a < sizeof(g_WeaponEnts); a++)
{
formatex(key, charsmax(key), g_WeaponEnts[a])
}
for (a = 0; a < sizeof(g_Values); a++)
{
formatex(values, charsmax(values), g_Values[a])
kb_weapon_power[cs_weapon_name_to_id(key)] = str_to_float(value)
}
}
// Ham Trace Attack Forward
public fw_TraceAttack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damage_type)
{
// Non-player damage or self damage
if (victim == attacker || !is_user_valid_connected(attacker))
return HAM_IGNORED;
// Use weapon power on knockback calculation
if (get_pcvar_num(cvar_knockbackpower) && kb_weapon_power[g_currentweapon[attacker]] > 0.0)
xs_vec_mul_scalar(direction, kb_weapon_power[g_currentweapon[attacker]], direction)
}
// Ham Weapon Deploy Forward
public fw_Item_Deploy_Post(weapon_ent)
{
// Get weapon's owner
static owner
owner = fm_cs_get_weapon_ent_owner(weapon_ent)
// Get weapon's id
static weaponid
weaponid = cs_get_weapon_id(weapon_ent)
// Store current weapon's id for reference
g_currentweapon[owner] = weaponid
}
stock cs_weapon_name_to_id(const weapon[])
{
static i
for (i = 0; i < sizeof WEAPONENTNAMES; i++)
{
if (equal(weapon, WEAPONENTNAMES[i]))
return i;
}
return 0;
}
is The code correct to set the weapon knockback power here, in plugin_init?
PHP Code:
public plugin_init()
{
cvar_knockbackpower = register_cvar("weapon_knockback", "1")
new a, key[64], values[64]
for (a = 0; a < sizeof(g_WeaponEnts); a++)
{
formatex(key, charsmax(key), g_WeaponEnts[a])
}
for (a = 0; a < sizeof(g_Values); a++)
{
formatex(values, charsmax(values), g_Values[a])
kb_weapon_power[cs_weapon_name_to_id(key)] = str_to_float(value)
}
}
__________________
Last edited by ghost95v; 09-16-2017 at 16:41.
|
|