Maybe because giveWeapon is a server side only function?
function pedLoad ()
s1 = createPed ( 33, 2348.8999023438, 2452.8000488281, 14.60000038147, 90)
setTimer( giveWeapon, 1000, 1, s1, 31, 5, true)
end
addEventHandler('onResourceStart', resourceRoot, pedLoad)