Instead of hijacking another thread I'll just make a new one.
Basically I'm using the curweapon hook to change some weapon models, change user speeds and recharge nades for a custom event. But I recently found out the event is also called when you fire the gun, or reload it, not only when it's selected, so that would explain the high data rates sent to the players when there are 25 players shooting m4a1s together
So my question is, is it worth ditching it for ham_item_deploy if I have to declare all weapons in game? If not, is there any other kind of hook I could make so my function is only called when changing weapons?
Code:
public current_weapon(id)
{
new CsTeams:team = cs_get_user_team(id)
switch(team)
{
case CS_TEAM_CT:
{
if(dayy==5)
{
new zombietype = g_ZombieType[id]
switch(zombietype)
{
case 1:
{
fm_set_user_model(id, "zombiemodell")
set_pev(id, pev_viewmodel2, zombiehands)
}
case 2:
{
set_user_maxspeed(id, 600.0)
fm_set_user_model(id, "zombiemodell")
set_pev(id, pev_viewmodel2, zombiehands)
}
case 3:
{
set_user_maxspeed(id, 180.0)
set_user_gravity(id, 0.5)
fm_set_user_model(id, "zombiemodell")
set_pev(id, pev_viewmodel2, zombiehands)
}
case 4:
{
set_user_maxspeed(id, 150.0)
fm_set_user_model(id, "zombiemodell")
set_pev(id, pev_viewmodel2, zombiehands)
}
case 5:
{
set_user_maxspeed(id, 250.0)
fm_set_user_model(id, "zombiemodell")
set_pev(id, pev_viewmodel2, zombiehands)
}
}
}
else if(dayy==6 && g_crawlerf != 1)
{
set_user_maxspeed(id, 450.0)
}
else if(dayy==8)
{
set_user_maxspeed(id, 300.0)
}
else if(dayy==9)
{
set_user_maxspeed(id, 450.0)
}
if(get_user_weapon(id) == CSW_KNIFE)
{
if(dayy==6 && g_nightcrawler[id])
{
set_pev(id, pev_viewmodel2, crawlerblade)
set_pev(id, pev_weaponmodel2, "")
fm_set_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0)
}
else
{
set_pev(id, pev_viewmodel2, v_stickmodel)
set_pev(id, pev_weaponmodel2, p_stickmodel)
}
}
else
{
if(g_BlockWeapons3 == 1)
{
strip_user_weapons(id)
give_item(id, "weapon_knife")
}
}
}
case CS_TEAM_T:
{
if(get_user_weapon(id) == CSW_KNIFE)
{
if(dayy == 8)
{
new zombietype = g_ZombieType[id]
switch(zombietype)
{
case 1:
{
fm_set_user_model(id, "zombiemodell")
set_pev(id, pev_viewmodel2, zombiehands)
}
case 2:
{
set_user_maxspeed(id, 600.0)
fm_set_user_model(id, "zombiemodell")
set_pev(id, pev_viewmodel2, zombiehands)
}
case 3:
{
set_user_maxspeed(id, 150.0)
set_user_gravity(id, 0.5)
fm_set_user_model(id, "zombiemodell")
set_pev(id, pev_viewmodel2, zombiehands)
}
case 4:
{
set_user_maxspeed(id, 100.0)
fm_set_user_model(id, "zombiemodell")
set_pev(id, pev_viewmodel2, zombiehands)
}
}
}
else
{
if(g_nightcrawler[id])
{
set_pev(id, pev_viewmodel2, crawlerblade)
fm_set_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0);
}
else
{
if(dayy != 2)
{
if(get_bit(g_PlayerCrowbar, id))
{
set_pev(id, pev_viewmodel2, _CrowbarModels[1])
set_pev(id, pev_weaponmodel2, _CrowbarModels[0])
}
else
{
set_pev(id, pev_viewmodel2, FistModel)
set_pev(id, pev_weaponmodel2, "")
}
}
}
}
}
else
{
if(g_BlockWeapons2 == 1 || g_ZombieType[id]!=0)
{
strip_user_weapons(id)
give_item(id, "weapon_knife")
}
}
if(dayy == 0)
{
if(g_speed[id])
{
set_pev(id, pev_maxspeed, 400.0)
}
}
}
}
return PLUGIN_CONTINUE
}