1.
PHP Code:
switch(detect_knife_sound(szSample))
{
case SOUND_DEPLOY: if(g_eKnife[id][DEPLOY_SOUND][0]) { play_knife_sound(id, g_eKnife[id][DEPLOY_SOUND][0]); return FMRES_SUPERCEDE; }
case SOUND_HIT: if(g_eKnife[id][HIT_SOUND][0]) { play_knife_sound(id, g_eKnife[id][HIT_SOUND][0]); return FMRES_SUPERCEDE; }
case SOUND_HITWALL: if(g_eKnife[id][HITWALL_SOUND][0]) { play_knife_sound(id, g_eKnife[id][HITWALL_SOUND][0]); return FMRES_SUPERCEDE; }
case SOUND_SLASH: if(g_eKnife[id][SLASH_SOUND][0]) { play_knife_sound(id, g_eKnife[id][SLASH_SOUND][0]); return FMRES_SUPERCEDE; }
case SOUND_STAB: if(g_eKnife[id][STAB_SOUND][0]) { play_knife_sound(id, g_eKnife[id][STAB_SOUND][0]); return FMRES_SUPERCEDE; }
}
This is pretty bad for readability. Way too many things on one line. IMO writting code in one line is ok only when you have one single instruction, like:
PHP Code:
if(!something) return
2.Consider using ItemDeploy instead of CurWeapon.
3.
PHP Code:
else if(equal(szKey, "DEPLOY_SOUND"))
{
eKnife[HAS_CUSTOM_SOUND] = true
copy(eKnife[DEPLOY_SOUND], charsmax(eKnife[DEPLOY_SOUND]), szValue)
precache_sound(szValue)
}
else if(equal(szKey, "HIT_SOUND"))
{
eKnife[HAS_CUSTOM_SOUND] = true
copy(eKnife[HIT_SOUND], charsmax(eKnife[HIT_SOUND]), szValue)
precache_sound(szValue)
}
else if(equal(szKey, "HITWALL_SOUND"))
{
eKnife[HAS_CUSTOM_SOUND] = true
copy(eKnife[HITWALL_SOUND], charsmax(eKnife[HITWALL_SOUND]), szValue)
precache_sound(szValue)
}
else if(equal(szKey, "SLASH_SOUND"))
{
eKnife[HAS_CUSTOM_SOUND] = true
copy(eKnife[SLASH_SOUND], charsmax(eKnife[SLASH_SOUND]), szValue)
precache_sound(szValue)
}
else if(equal(szKey, "STAB_SOUND"))
{
eKnife[HAS_CUSTOM_SOUND] = true
copy(eKnife[STAB_SOUND], charsmax(eKnife[STAB_SOUND]), szValue)
precache_sound(szValue)
}
could be shortened to something like this:
PHP Code:
else
{
eKnife[HAS_CUSTOM_SOUND] = true
precache_sound(szValue)
if(equal(szKey, "DEPLOY_SOUND"))
{
copy(eKnife[DEPLOY_SOUND], charsmax(eKnife[DEPLOY_SOUND]), szValue)
}
else if(equal(szKey, "HIT_SOUND"))
{
copy(eKnife[HIT_SOUND], charsmax(eKnife[HIT_SOUND]), szValue)
}
else if(equal(szKey, "HITWALL_SOUND"))
{
copy(eKnife[HITWALL_SOUND], charsmax(eKnife[HITWALL_SOUND]), szValue)
}
else if(equal(szKey, "SLASH_SOUND"))
{
copy(eKnife[SLASH_SOUND], charsmax(eKnife[SLASH_SOUND]), szValue)
}
else if(equal(szKey, "STAB_SOUND"))
{
copy(eKnife[STAB_SOUND], charsmax(eKnife[STAB_SOUND]), szValue)
}
}
}
to avoid duplicated code.
(could also use a switch and check for specific characters instead of using if and equal, but not very important)
Be consistent with naming conventions: you have things like play_knife_sound, detect_knife_sound and then things like ColorChat, PushKnife, etc. Use one style.
__________________