hey i have gmod lua code that adds postal 2 petition to the game and it gives me error when im in first person view heres the error "[rupostalpetition] addons/rupostalpetition/lua/weapons/weapon_postalpetition/shared.lua:104: bad argument #1 to 'GetBonePosition' (number expected, got no value)
    1. GetBonePosition - [C]:-1
        2. unknown - addons/rupostalpetition/lua/weapons/weapon_postalpetition/shared.lua:104" and heres the code ``` local PetitionSound = {}

SWEP.PrintName          = "Petition"

SWEP.DrawCrosshair          = true

SWEP.Author             = ""
SWEP.Contact            = ""
SWEP.Purpose            = ""
SWEP.Instructions       = ""
SWEP.Category			= "Postal 2"
 
SWEP.Slot				= 1
SWEP.SlotPos				= 0

SWEP.Spawnable = true
SWEP.AdminSpawnable = true

SWEP.ViewModel = Model("models/postal/c_petition.mdl")
SWEP.UseHands = true
SWEP.WorldModel = "models/postal 2/weapons/clipboard.mdl"
SWEP.SetHoldType = slam

SWEP.Primary.Clipsize = -1
SWEP.Primary.DefaultClip = -1
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = "none"

SWEP.Secondary.Clipsize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = "none"

local PetitionSound = {
Sound("petition/petition_1.wav"),
Sound("petition/petition_2.wav"),
Sound("petition/petition_3.wav"),
Sound("petition/petition_4.wav"),
Sound("petition/petition_5.wav"),
Sound("petition/petition_6.wav"),
}

function SWEP:Initialize()
	self:SetHoldType( "pistol" )

	if SERVER then return end

	self.clipboard = ClientsideModel( self.WorldModel )
	self.clipboard:SetNoDraw( true )
end

function SWEP:Think()
end

function SWEP:Reload()

end


function SWEP:Deploy()
self.Owner:SetAnimation( PLAYER_IDLE );
self.Weapon:SendWeaponAnim( ACT_VM_IDLE );
end

function SWEP:PrimaryAttack()
self.Owner:SetAnimation( PLAYER_IDLE );
self.Weapon:SendWeaponAnim( ACT_VM_PRIMARYATTACK );
	local PetitionSoundFunc = table.Random(PetitionSound)
	self:EmitSound(PetitionSoundFunc)
end

function SWEP:SecondaryAttack()

self.Owner:SetAnimation( PLAYER_ATTACK1 );
self.Weapon:SendWeaponAnim( ACT_VM_SECONDARYATTACK );
	self:EmitSound("petition/petition_sign.wav")
end







function SWEP:OnRemove()
	self:SetHoldType( "pistol" )

	if SERVER then return end

	if ( self.clipboard and self.clipboard:IsValid() ) then
		self.clipboard:Remove()
	end
end

function SWEP:PreDrawViewModel( vm, wep, ply )
	render.SetBlend( 0 )
end

function SWEP:PostDrawViewModel( vm, wep, ply )
	render.SetBlend( 1 )

	local model = self.clipboard
	    if IsValid(ply) then
	local bone_pos, bone_angle = vm:GetBonePosition( vm:LookupBone("ValveBiped.base") )

	model:SetPos( bone_pos + bone_angle:Up()*-9 + bone_angle:Forward()*-1 + bone_angle:Right()*-1.5 )
	bone_angle:RotateAroundAxis( bone_angle:Up(), -90 )
	bone_angle:RotateAroundAxis( bone_angle:Forward(), 200 )
	bone_angle:RotateAroundAxis( bone_angle:Right(), 10 )
	model:SetAngles( bone_angle )
	model:SetupBones()

	model:DrawModel()
end
end

function SWEP:DrawWorldModel()
	local ply = self:GetOwner()
	local model = self.clipboard

	local bone_index = ply:LookupBone("ValveBiped.Bip01_R_Hand")
	local bone_pos, bone_angle

	if ( bone_index ) then bone_pos, bone_angle = ply:GetBonePosition( bone_index ) end

	model:SetPos( bone_index and ( bone_pos + bone_angle:Up()*-1 + bone_angle:Forward()*4.4 + bone_angle:Right()*6 ) or ply:GetPos() )
	if ( bone_index ) then
		bone_angle:RotateAroundAxis( bone_angle:Up(), 180 )
		bone_angle:RotateAroundAxis( bone_angle:Forward(), 180 )
		bone_angle:RotateAroundAxis( bone_angle:Right(), -70 )

		model:SetAngles( bone_angle )
	end	
	model:SetupBones()

	model:DrawModel()
end



```