Xwad Posted July 7, 2016 Posted July 7, 2016 in my script i create an object, and i attach the object to the player with bone attach. my Problem is that other players cant see the object.. only the local player can see it:/ Does the root not contains the sync?? client function custom_mp40() local id = getElementModel ( source ) if id == 21 then local PedWeapon = getPedWeapon(localPlayer) if (PedWeapon == 29) then mp40 = createObject(1855,0,0,0) exports.bone_attach:attachElementToBone(mp40,localPlayer,12,0,0,0,-3,-90,0) outputChatBox("create", 255, 255, 0) end end if id == 21 then local PedWeapon = getPedWeapon(localPlayer) if not (PedWeapon == 29) then destroyElement(mp40) outputChatBox("destroyed", 255, 0, 0) end end end addEventHandler ( "onClientPlayerWeaponSwitch", getRootElement(), custom_mp40 )
Walid Posted July 7, 2016 Posted July 7, 2016 in my script i create an object, and i attach the object to the player with bone attach. my Problem is that other players cant see the object.. only the local player can see it:/ Does the root not contains the sync?? attach it server side.
Captain Cody Posted July 7, 2016 Posted July 7, 2016 That's what I said originally but I was questioning whether or not it would work (Have never used bone attach)
Walid Posted July 7, 2016 Posted July 7, 2016 That's what I said originally but I was questioning whether or not it would work (Have never used bone attach) try this. local attach = {} function attchweapon(prev,cur) local id = getElementModel(source) if id == 21 then if cur == 29 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1855,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,-3,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),attchweapon)
Captain Cody Posted July 7, 2016 Posted July 7, 2016 Oh I already know of that. Xwads that one that needs it.
Xwad Posted July 8, 2016 Author Posted July 8, 2016 now i have a new problem:/ i want to destroy the object when the player dies. my code is not working, please help function onWasted() destroyElement(attach[source]) outputChatBox("wasted", 255, 0, 0) end addEventHandler ( "onPlayerWasted", getRootElement(), onWasted ) local attach = {} function custom_mp40(prev,cur) local id = getElementModel(source) if id == 21 then if cur == 29 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1855,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,-3,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_mp40)
Walid Posted July 8, 2016 Posted July 8, 2016 function onWasted() if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end end addEventHandler("onPlayerWasted",root,onWasted)
Xwad Posted July 8, 2016 Author Posted July 8, 2016 ERROR: attempt to index global 'attach' (a nil value)
Walid Posted July 8, 2016 Posted July 8, 2016 ERROR: attempt to index global 'attach' (a nil value) are you sure you didn't change the table name . working fine for me local attach = {} function custom_mp40(prev,cur) local id = getElementModel(source) if id == 21 then if cur == 29 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1855,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,-3,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_mp40) function onWasted() if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source) end end addEventHandler("onPlayerWasted",root,onWasted)
Xwad Posted July 8, 2016 Author Posted July 8, 2016 i dont undesratnd this... I added more custom weapons and it gives the same debugscript!! pls help is the problem becaouse of the table name? It must be "table"? function onWasted() if isElement(attach_mp40[source]) then destroyElement(attach_mp40[source]) attach_mp40[source] = nil end if isElement(attach_thompson[source]) then destroyElement(attach_thompson[source]) attach_thompson[source] = nil end if isElement(attach_mp44[source]) then destroyElement(attach_mp44[source]) attach_mp44[source] = nil end if isElement(attach_bar[source]) then destroyElement(attach_bar[source]) attach_bar[source] = nil end if isElement(attach_g43[source]) then destroyElement(attach_g43[source]) attach_g43[source] = nil end if isElement(attach_garand[source]) then destroyElement(attach_garand[source]) attach_garand[source] = nil end if isElement(attach_luger[source]) then destroyElement(attach_luger[source]) attach_luger[source] = nil end if isElement(attach_colt45[source]) then destroyElement(attach_colt45[source]) attach_colt45[source] = nil end if isElement(attach_panzershrek[source]) then destroyElement(attach_panzershrek[source]) attach_panzershrek[source] = nil end if isElement(attach_bazooka[source]) then destroyElement(attach_bazooka[source]) attach_bazooka[source] = nil end if isElement(attach_kar98[source]) then destroyElement(attach_kar98[source]) attach_kar98[source] = nil end if isElement(attach_springfield[source]) then destroyElement(attach_springfield[source]) attach_springfield[source] = nil end end addEventHandler("onPlayerWasted",root,onWasted) local attach_mp40 = {} function custom_mp40(prev,cur) local id = getElementModel(source) if id == 21 then if cur == 29 then if isElement(attach_mp40[source]) then destroyElement(attach_mp40[source]) attach_mp40[source] = nil end attach_mp40[source] = createObject(1855,0,0,0) exports.bone_attach:attachElementToBone(attach_mp40[source],source,12,0,0,0,-3,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach_mp40[source]) then destroyElement(attach_mp40[source]) attach_mp40[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_mp40) local attach_thompson = {} function custom_thompson(prev,cur) local id = getElementModel(source) if id == 101 then if cur == 29 then if isElement(attach_thompson[source]) then destroyElement(attach_thompson[source]) attach_thompson[source] = nil end attach_thompson[source] = createObject(1856,0,0,0) exports.bone_attach:attachElementToBone(attach_thompson[source],source,12,0,0,0,-1.5,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach_thompson[source]) then destroyElement(attach_thompson[source]) attach_thompson[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_thompson) local attach_mp44 = {} function custom_mp44(prev,cur) local id = getElementModel(source) if id == 20 then if cur == 30 then if isElement(attach_mp44[source]) then destroyElement(attach_mp44[source]) attach_mp44[source] = nil end attach_mp44[source] = createObject(1857,0,0,0) exports.bone_attach:attachElementToBone(attach_mp44[source],source,12,0,0,0,-2,-97,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach_mp44[source]) then destroyElement(attach_mp44[source]) attach_mp44[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_mp44) local attach_bar = {} function custom_bar(prev,cur) local id = getElementModel(source) if id == 100 then if cur == 30 then if isElement(attach_bar[source]) then destroyElement(attach_bar[source]) attach_bar[source] = nil end attach_bar[source] = createObject(1858,0,0,0) exports.bone_attach:attachElementToBone(attach_bar[source],source,12,0,0,0,-2,-98,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach_bar[source]) then destroyElement(attach_bar[source]) attach_bar[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_bar) local attach_g43 = {} function custom_g43(prev,cur) local id = getElementModel(source) if id == 22 then if cur == 33 then if isElement(attach_g43[source]) then destroyElement(attach_g43[source]) attach_g43[source] = nil end attach_g43[source] = createObject(1859,0,0,0) exports.bone_attach:attachElementToBone(attach_g43[source],source,12,0,0,0,-3,-92,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach_g43[source]) then destroyElement(attach_g43[source]) attach_g43[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_g43) local attach_garand = {} function custom_garand(prev,cur) local id = getElementModel(source) if id == 102 then if cur == 33 then if isElement(attach_garand[source]) then destroyElement(attach_garand[source]) attach_garand[source] = nil end attach_garand[source] = createObject(1860,0,0,0) exports.bone_attach:attachElementToBone(attach_garand[source],source,12,0,0,0,-1.2,-92,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach_garand[source]) then destroyElement(attach_garand[source]) attach_garand[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_garand) local attach_luger = {} function custom_luger(prev,cur) local id = getElementModel(source) if id == 20 or id == 21 or id == 22 then if cur == 23 then if isElement(attach_luger[source]) then destroyElement(attach_luger[source]) attach_luger[source] = nil end attach_luger[source] = createObject(1861,0,0,0) exports.bone_attach:attachElementToBone(attach_luger[source],source,12,0,0,0,0,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach_luger[source]) then destroyElement(attach_luger[source]) attach_luger[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_luger) local attach_colt45 = {} function custom_colt45(prev,cur) local id = getElementModel(source) if id == 100 or id == 101 or id == 102 then if cur == 23 then if isElement(attach_colt45[source]) then destroyElement(attach_colt45[source]) attach_colt45[source] = nil end attach_colt45[source] = createObject(1862,0,0,0) exports.bone_attach:attachElementToBone(attach_colt45[source],source,12,0,0,0,0,-90,0)
Walid Posted July 8, 2016 Posted July 8, 2016 Why your are using many tables , put all of them inside one table. your code will be definitely tidier and easier to read. Example: local attach = { -- skin Id, Weapon Id, Object Id, bone, x,y,z,rx,ry,rz {21,29,1855,12,0,0,0,-3,-90,0} }
Xwad Posted July 8, 2016 Author Posted July 8, 2016 now its fully not wroking. all the skins are on a different weapon ids. I dont use it only on one weapon function onWasted() if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source) end end addEventHandler("onPlayerWasted",root,onWasted) local attach = {} function custom_mp40(prev,cur) local id = getElementModel(source) if id == 21 then if cur == 29 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1855,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,-3,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_mp40) function custom_thompson(prev,cur) local id = getElementModel(source) if id == 101 then if cur == 29 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1856,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,-1.5,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_thompson) function custom_mp44(prev,cur) local id = getElementModel(source) if id == 20 then if cur == 30 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1857,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,-2,-97,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_mp44) function custom_bar(prev,cur) local id = getElementModel(source) if id == 100 then if cur == 30 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1858,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,-2,-98,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_bar) function custom_g43(prev,cur) local id = getElementModel(source) if id == 22 then if cur == 33 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1859,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,-3,-92,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_g43) function custom_garand(prev,cur) local id = getElementModel(source) if id == 102 then if cur == 33 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1860,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,-1.2,-92,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_garand) function custom_luger(prev,cur) local id = getElementModel(source) if id == 20 or id == 21 or id == 22 then if cur == 23 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1861,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,0,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_luger) function custom_colt45(prev,cur) local id = getElementModel(source) if id == 100 or id == 101 or id == 102 then if cur == 23 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1862,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,0,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_colt45) function custom_panzershrek(prev,cur) local id = getElementModel(source) if id == 20 then if cur == 29 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1863,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,0,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end addEventHandler ("onPlayerWeaponSwitch", getRootElement(),custom_panzershrek) function custom_bazooka(prev,cur) local id = getElementModel(source) if id == 100 then if cur == 29 then if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil end attach[source] = createObject(1864,0,0,0) exports.bone_attach:attachElementToBone(attach[source],source,12,0,0,0,0,-90,0) outputChatBox("created",source, 255, 255, 0) else if isElement(attach[source]) then destroyElement(attach[source]) attach[source] = nil outputChatBox("destroyed",source, 0,255,0) end end end end
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now