Thanks for the reply Darth but that wasn't the problem as it turns out, it was because of the order I was creating the pack, creating the timer and then writing stuff to the pack:
PHP Code:
rage_tempMelee(const String:ability_name[], index)
{
new Boss=GetClientOfUserId(FF2_GetBossUserId(index));
FF2_GetAbilityArgumentString(index, this_plugin_name, ability_name, 1, weaponAttribs, sizeof(weaponAttribs));
FF2_GetAbilityArgumentString(index, this_plugin_name, ability_name, 2, weaponClass, sizeof(weaponClass));
thisWeaponIndex = FF2_GetAbilityArgument(index, this_plugin_name, ability_name, 3);
new Float:duration=FF2_GetAbilityArgumentFloat(index, this_plugin_name, ability_name, 4);
TF2_RemoveWeaponSlot(Boss, TFWeaponSlot_Melee);
SetEntPropEnt(Boss, Prop_Send, "m_hActiveWeapon", SpawnWeapon(Boss, weaponClass, thisWeaponIndex, 100, 8, weaponAttribs));
new Handle:pack;
CreateDataTimer(duration, normalMelee, pack, TIMER_DATA_HNDL_CLOSE);
WritePackCell(pack, index);
WritePackCell(pack, Boss);
}
I don't really know why this made a difference to it but it did, it's all working fine and dandy now.