Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

i got this erorr invalid argument #1 to 'Connect' (RBXScriptSignal expected, got function)?

local gun = script.Parent
local runService = game:GetService('RunService')
local replicatedStorage = game:GetService('ReplicatedStorage')
local player = game:GetService('Players')

local viewModel = replicatedStorage:WaitForChild('MainGame'):WaitForChild('Guns'):WaitForChild('Pistol'):Clone()
local camera = workspace.CurrentCamera
local player = player.LocalPlayer
local mouse = player:GetMouse()
local character = player.Character or player.CharacterAdded:Wait()
viewModel.Parent = replicatedStorage.UnequippedGuns

local config = require(viewModel:WaitForChild('Config'))

local cf = CFrame.new()

local sinSpeed = 2.5
local sinSize = 3
local cosSpeed = 4
local cosSize = 4
local recoilSpeed = 8
local recoilSize = .5


local equipConnection

local shoot_Cooldown = false

local animations = {
	['Hold'] = viewModel.AnimationController.Animator:LoadAnimation(viewModel.Animations.Hold)
}

cf = config.Offset_From_Camera

function positionModel()
	if player.character then
		viewModel:SetPrimaryPartCFrame(camera.CFrame*cf)
		local sin = math.sin(time() * sinSpeed)/sinSize
		local cos = math.cos(time() * cosSpeed)/cosSize	
		if player.character.Humanoid.MoveDirection.Magnitude > 0 then
			cf = cf:Lerp(CFrame.new(config.Offset_From_Camera.X+sin, config.Offset_From_Camera.Y+cos,config.Offset_From_Camera.Z),.2)	
		else
			cf = cf:Lerp(config.Offset_From_Camera,0.2)
		end
	end
end

function shoot(target)
	if not shoot_Cooldown then       
		shoot_Cooldown = true
		if player.Character:FindFirstChild(script.Parent.Name) then
			local sin = math.sin(time() * recoilSpeed)/recoilSize
			cf = cf:Lerp(CFrame.new(config.Offset_From_Camera.X, config.Offset_From_Camera.Y,config.Offset_From_Camera.Z+sin),.2)
			viewModel.Shoot:Play()
		end
		if target.Parent:FindFirstChild('Humanoid') then
			replicatedStorage['MainGame']['Remotes']['Shoot']:FireServer(mouse.Target, gun.Name)
		end
		wait(config.CoolDown_Between_Each_Click)
		shoot_Cooldown = false
	end
end

gun.Activated.Connect(function()
	shoot(mouse.Target)
end)

local function equip()
	if not gun and viewModel then return end
	for _, part in pairs(gun:GetChildren()) do
		if part:IsA('BasePart') or part:IsA('UnionOperation') then
			part.Transparency = 1
		end
	end
	viewModel.Parent = camera
	animations['Hold']:Play()
	equipConnection = runService.RenderStepped:Connect(function()
		if player.Character.Humanoid.Health > 0 then
			positionModel()
		end
	end)
end

local function unequip()
	if not gun then return end
	equipConnection:Disconnect()
	viewModel.Parent = replicatedStorage.UnequippedGuns
end

gun.Equipped:Connect(function()
	mouse.Icon = "http://www.roblox.com/asset?id=7263880558"
	equip()
end)

gun.Unequipped:Connect(function()
	unequip()
end)

6 comments

0

attention in line 64

0

Line 64 you used .Connect(function() instead of :Connect(function().

0

@EnzoTDZ_YT, why are you trying to close this question as "Spam"?

0

Let this be a warning, Do NOT repost questions that have already been answered! @kiref81

0

I meant to close the other 3 as they were reposted questions.

0

Don't close questions as spam. If they are reposted question then you should close it as duplicate. I don't think I have to explain this, but when someone's question gets closed as spam, they receive -50 reputation and they get auto suspended (so if someone has 0 reputation and gets closed as spam they are suspended)

1 answer

✓ Accepted answer

This is a simple typo. Line 64 is supposed to be gun.Activated:Connect(function(), but you entered gun.Activated.Connect(function(). Notice the . inbetween Activated and Connect.

1 comment

0

Re-edited by JesseSong!

This discussion is preserved as it was. New answers, comments, and votes are closed.