I have a Baseball bat and it keeps on grabbing it from the middle part instead than the down one. Here are both scripts of the Weapon:
Sword Script:
r = game:service("RunService")
local sword = script.Parent.Handle
local Tool = script.Parent
local damage = 5
local p = nil
local humanoid = nil
local slash_damage = 8
local lunge_damage = 12
local regularWalk = 23
local SlashSound = Instance.new("Sound")
SlashSound.SoundId = "http://www.roblox.com/Asset/?ID=12135982"
SlashSound.Parent = sword
SlashSound.Volume = 0.5
SlashSound.Pitch = 0.85
local LungeSound = Instance.new("Sound")
LungeSound.SoundId = "http://www.roblox.com/Asset/?ID=12135982"
LungeSound.Parent = sword
LungeSound.Volume = 0.5
LungeSound.Pitch = 0.85
local UnsheathSound = Instance.new("Sound")
UnsheathSound.SoundId = "http://www.roblox.com/Asset/?ID=12135982"
UnsheathSound.Parent = sword
UnsheathSound.Volume = 0.7
UnsheathSound.Pitch = 0.85
function blow(hit)
local humanoid = hit.Parent:findFirstChild("Humanoid")
local vCharacter = Tool.Parent
local vPlayer = game.Players:playerFromCharacter(vCharacter)
local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character
if humanoid~=nil and humanoid ~= hum and hum ~= nil then
-- final check, make sure sword is in-hand
local right_arm = vCharacter:FindFirstChild("Right Arm")
if (right_arm ~= nil) then
local joint = right_arm:FindFirstChild("RightGrip")
if (joint ~= nil and (joint.Part0 == sword or joint.Part1 == sword)) then
tagHumanoid(humanoid, vPlayer)
humanoid:TakeDamage(damage)
wait(1)
untagHumanoid(humanoid)
end
end
end
end
function tagHumanoid(humanoid, player)
local creator_tag = Instance.new("ObjectValue")
creator_tag.Value = player
creator_tag.Name = "creator"
creator_tag.Parent = humanoid
end
function untagHumanoid(humanoid)
if humanoid ~= nil then
local tag = humanoid:findFirstChild("creator")
if tag ~= nil then
tag.Parent = nil
end
end
end
function attack(humanoid)
damage = slash_damage
SlashSound:play()
local animation = humanoid:LoadAnimation(Tool.twohandedswordhit)
animation:Play()
animation.KeyframeReached:connect(function(string)
if string == "throwdown" then
animation:Stop()
animation:remove()
end
end)
end
function lunge(humanoid)
damage = lunge_damage
LungeSound:play()
local anim = humanoid:LoadAnimation(Tool.bigtwohandhit)
anim:Play(0.1,1,4)
anim.KeyframeReached:connect(function(string)
if string == "throwdown" then
anim:Stop()
anim:remove()
end
end)
damage = slash_damage
end
function swordUp()
Tool.GripForward = Vector3.new(-1,0,0)
Tool.GripRight = Vector3.new(0,1,0)
Tool.GripUp = Vector3.new(0,0,1)
end
function swordOut()
Tool.GripForward = Vector3.new(0,0,1)
Tool.GripRight = Vector3.new(0,1,0)
Tool.GripUp = Vector3.new(1,0,0)
end
function swordAcross()
-- parry
end
Tool.Enabled = true
local last_attack = 0
function onActivated()
if not Tool.Enabled then
return
end
Tool.Enabled = false
local character = Tool.Parent;
local humanoid = character.Humanoid
if humanoid == nil then
print("Humanoid not found")
return
end
t = r.Stepped:wait()
if (t - last_attack < .2) then
lunge(humanoid)
else
attack(humanoid)
end
last_attack = t
Tool.Enabled = true
end
function onEquipped()
UnsheathSound:play()
local humanoid = Tool.Parent:FindFirstChild("Humanoid",false)
animation = humanoid:loadAnimation(Tool.twohandedswordhit)
p = game.Players:GetPlayerFromCharacter(Tool.Parent)
end
script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)
connection = sword.Touched:connect(blow)
Local Gui
%VywwpqLBRvghzLEWlmj01Hrxowc/Ki8uwzTuEL1U4VXXGsjT8/n5thDtEpZsLu1caD6T37n0EMq37y5QN29wu12b4jUvd8sfvCD+pc7nVzsoHJzj67CD/PBYKNixnEtOx/dqzaoUuAEjAwp9dPA+RAmKq/HZGaP35CZC7Spd1gg=476%local Tool = script.Parent;
enabled = true
function onButton1Down(mouse)
if not enabled then
return
end
enabled = false
mouse.Icon = "http://www.roblox.com/asset/?id=45313269"
wait(.5)
mouse.Icon = "http://www.roblox.com/asset/?id=45313269"
enabled = true
end
function onEquippedLocal(mouse)
if mouse == nil then
print("Mouse not found")
return
end
mouse.Icon = "rbxasset://textures\\GunCursor.png"
mouse.Button1Down:connect(function() onButton1Down(mouse) end)
end
Tool.Equipped:connect(onEquippedLocal)
And here a link of how is the bat being grabbed:

2 comments
http://wiki.roblox.com/index.php?title=API:Class/Tool GripPos, or Grip.
Thanks :D