I havn't used it in a while, but i think its that the first # (specified player ID) can not be 0 for all players.. you'd have to use a for loop to set every1's m79's availability to false..
var
i: byte;
begin
for i := 1 to 32 do SetWeaponActive(i, 7, false);
end;