HustraDev Posted September 30, 2019 Share Posted September 30, 2019 Hello Guys this is me agin this time i have on Xwad MG Machine Gun Problem the problem is i can't mount the machine gun on a vehicle the code client side : inUse = false inUse_s = false inUse_s2 = false inUse_s3 = false w, h = guiGetScreenSize () function create_client(weapon,weapon2,weapon3) local x,y,z = getElementPosition (weapon) local weapon_c = createWeapon("minigun", x,y,z) setElementCollisionsEnabled( weapon_c, false ) setWeaponState ( weapon_c, "ready" ) setElementAlpha ( weapon_c, 255 ) setWeaponFiringRate ( weapon_c , 60 ) setElementParent( weapon_c, weapon ) setWeaponProperty( weapon_c, "damage", 0) setWeaponProperty ( weapon_c, "fire_rotation", 0, -27, -5.5 ) setWeaponProperty ( weapon_c, "weapon_range", 10000 ) setWeaponProperty ( weapon_c, "target_range", 10000 ) setWeaponClipAmmo( weapon_c, 250 ) setElementData ( weapon_c, "owner", player ) setElementData ( localPlayer, "gun", weapon_c ) attachElements ( weapon_c, weapon, 1.1, -0.12, 0.152, -6, 3, -2 ) local x,y,z = getElementPosition (weapon2) local weapon_c2 = createWeapon("minigun", x,y,z) setElementCollisionsEnabled( weapon_c2, false ) setWeaponState ( weapon_c2, "ready" ) setElementAlpha ( weapon_c2, 0 ) setWeaponFiringRate ( weapon_c2 , 60 ) setElementParent( weapon_c2, weapon2 ) setWeaponProperty( weapon_c2, "damage", 0) setWeaponProperty ( weapon_c2, "fire_rotation", 0, -27, -5.5 ) setWeaponProperty ( weapon_c2, "weapon_range", 10000 ) setWeaponProperty ( weapon_c2, "target_range", 10000 ) setWeaponClipAmmo( weapon_c2, 250 ) setElementData ( weapon_c2, "owner", player ) setElementData ( localPlayer, "gun2", weapon_c2 ) attachElements ( weapon_c2, weapon2, 1.1, -0.12, 0.152, -6, 3, -2 ) local x,y,z = getElementPosition (weapon3) local weapon_c3 = createWeapon("minigun", x,y,z) setElementCollisionsEnabled( weapon_c3, false ) setWeaponState ( weapon_c3, "ready" ) setElementAlpha ( weapon_c3, 0 ) setWeaponFiringRate ( weapon_c3 , 60 ) setElementParent( weapon_c3, weapon3 ) setWeaponProperty( weapon_c3, "damage", 0) setWeaponProperty ( weapon_c3, "fire_rotation", 0, -27, -5.5 ) setWeaponProperty ( weapon_c3, "weapon_range", 10000 ) setWeaponProperty ( weapon_c3, "target_range", 10000 ) setWeaponClipAmmo( weapon_c3, 250 ) setElementData ( weapon_c3, "owner", player ) setElementData ( localPlayer, "gun2", weapon_c3 ) attachElements ( weapon_c3, weapon3, 1.1, -0.12, 0.152, -6, 3, -2 ) end addEvent("createRealWeapon", true) addEventHandler("createRealWeapon",root, create_client) function enterMG() if inUse == true then setTimer ( exitMG, 100, 1) else if not isPedInVehicle(localPlayer) and inUse == false then local text = getElementData ( localPlayer, "text" ) if isElement(text) then inUse = true setElementAlpha ( localPlayer, 0 ) triggerServerEvent ( "attachPlayerToMG", localPlayer) addEventHandler('onClientRender', root, renderVehCross ) addEventHandler('onClientRender', root, updatePlayerWeapon ) toggleCockpitView() destroyElement(text) local text2 = guiCreateLabel ( 0.470, 0.32, 4, 2, "Press USE [G] to drop", true ) guiSetFont ( text2, "default-bold-small" ) setElementData (localPlayer, "text2", text2) end end end end bindKey ( "g", "down", enterMG) --1 function inUse_server() inUse_s = true end addEvent("inUse_server", true) addEventHandler("inUse_server",getRootElement(), inUse_server) function noUse_server() inUse_s = false end addEvent("noUse_server", true) addEventHandler("noUse_server",getRootElement(), noUse_server) --2 function inUse_server2() inUse_s2 = true end addEvent("inUse_server2", true) addEventHandler("inUse_server2",getRootElement(), inUse_server2) function noUse_server2() inUse_s2 = false end addEvent("noUse_server2", true) addEventHandler("noUse_server2",getRootElement(), noUse_server2) --3 function inUse_server3() inUse_server3 = true end addEvent("inUse_server3", true) addEventHandler("inUse_server3",getRootElement(), inUse_server3) function noUse_server3() noUse_server3 = false end addEvent("noUse_server3", true) addEventHandler("noUse_server3",getRootElement(), noUse_server3) function exitMG() inUse = false isEnabled = false setCameraTarget (localPlayer, localPlayer) removeEventHandler ("onClientPreRender", root, updateCamera) removeEventHandler ("onClientCursorMove", root, freecamMouse) removeEventHandler('onClientRender', root, updatePlayerWeapon ) removeEventHandler('onClientRender', root, renderVehCross ) triggerServerEvent("detachPlayerFromMG", localPlayer) setElementAlpha ( localPlayer, 255 ) local text2 = getElementData ( localPlayer, "text2" ) destroyElement(text2) local text = guiCreateLabel( 0.470, 0.32, 4, 2, "Press USE [G] to use", true) guiSetFont ( text, "default-bold-small" ) setElementData (localPlayer, "text", text) toggleControl ("fire", true) toggleCockpitView() end addEvent("getOutFromMacineGun", true) addEventHandler("getOutFromMacineGun",getRootElement(), exitMG) function onWasted () if inUse == true then inUse = false isEnabled = false setCameraTarget (localPlayer, localPlayer) removeEventHandler ( "onClientPreRender", root, updateCamera ) removeEventHandler ( "onClientCursorMove", root, freecamMouse ) removeEventHandler ( 'onClientRender', root, updatePlayerWeapon ) removeEventHandler ( 'onClientRender', root, renderVehCross ) triggerServerEvent ( "detachPlayerFromMG", localPlayer ) setElementAlpha ( localPlayer, 255 ) toggleControl ("fire", true) toggleCockpitView() local text = getElementData ( localPlayer, "text" ) local text2 = getElementData ( localPlayer, "text2" ) local img = getElementData ( localPlayer, "img" ) destroyElement(text) destroyElement(text2) destroyElement(img) end end addEventHandler ( "onClientPlayerWasted", getLocalPlayer(), onWasted ) function onDemage() if inUse == true then setPedAnimationProgress(localPlayer, "SilenceCrouchfire", 0.7) triggerServerEvent ( "demage_anim", localPlayer) end end addEventHandler ( "onClientPlayerDamage", getLocalPlayer(), onDemage ) function renderVehCross () if inUse == true then dxDrawImage (w/2-34, h/2-38,68,68,"files/crosshair.png",0,0,0) setCameraFieldOfView("player",70) else removeEventHandler('onClientRender', root, renderVehCross ) end end function fireCustomVehWeapon () if inUse == true then local px,py,pz = getElementPosition (localPlayer) local x,y,z = getWorldFromScreenPosition ( w/2, h/2, 50 ) setElementData ( localPlayer, "attachedToWeapon_aim", {x,y,z} ) setElementData ( localPlayer, "attachedToWeapon_fire", true) setTimer ( updateWeaponTargetOnFire, 200, 1 ) triggerServerEvent("fire_server", localPlayer, localPlayer,px,py,pz) end end bindKey ("mouse1", "down", fireCustomVehWeapon) function updateWeaponTargetOnFire () if getKeyState ("mouse1") and inUse == true then local x,y,z = getWorldFromScreenPosition ( w/2, h/2, 75 ) setElementData ( localPlayer, "attachedToWeapon_aim", {x,y,z} ) setTimer ( updateWeaponTargetOnFire, 100, 1 ) else setElementData ( localPlayer, "attachedToWeapon_fire", false) end end function fire_client(player,px,py,pz) local sound_mg = getElementData ( localPlayer, "sound_mg" ) if not isElement(sound_mg) then local gun = getElementData ( localPlayer, "gun" ) local aim = getElementData ( player, "attachedToWeapon_aim" ) local x,y,z = getElementPosition (localPlayer) local sound_mg = playSound3D ( "files/mg.wav", px,py,pz, true ) setSoundMaxDistance ( sound_mg, 500 ) setWeaponState ( gun, "firing" ) setWeaponTarget(gun, aim[1],aim[2],aim[3]) setElementData ( localPlayer, "sound_mg", sound_mg ) setTimer ( fireCustomWeapInTime, 50, 1, gun, player ) end local sound_mg = getElementData ( localPlayer, "sound_mg" ) if not isElement(sound_mg) then local gun = getElementData ( localPlayer, "gun2" ) local aim = getElementData ( player, "attachedToWeapon_aim" ) local x,y,z = getElementPosition ( gun ) local sound_mg = playSound3D ( "files/mg.wav", x,y,z, true ) setSoundMaxDistance ( sound_mg, 500 ) setWeaponState ( gun, "firing" ) setWeaponTarget(gun, aim[1],aim[2],aim[3]) setTimer ( fireCustomWeapInTime, 50, 1, gun, player ) setElementData ( localPlayer, "sound_mg", sound_mg ) end end addEvent("fire_client", true) addEventHandler("fire_client",getRootElement(), fire_client) function fireCustomWeapInTime (gun, player) if isElement ( player ) and getElementData ( player, "attachedToWeapon_fire" ) then local aim = getElementData ( player, "attachedToWeapon_aim" ) setWeaponTarget(gun, aim[1],aim[2],aim[3]) timer = setTimer ( fireCustomWeapInTime, 100, 1, gun, player ) else local sound_mg = getElementData ( localPlayer, "sound_mg" ) local x,y,z = getElementPosition ( player ) setWeaponState ( gun, "ready" ) stopSound(sound_mg) end end function fire_client2(player,px,py,pz) local sound_mg2 = getElementData ( localPlayer, "sound_mg2" ) if not isElement(sound_mg2) then local gun = getElementData ( localPlayer, "gun2" ) local aim = getElementData ( player, "attachedToWeapon_aim" ) local x,y,z = getElementPosition (localPlayer) local sound_mg2 = playSound3D ( "files/mg.wav", px,py,pz, true ) setSoundMaxDistance ( sound_mg2, 500 ) setWeaponState ( gun, "firing" ) setWeaponTarget(gun, aim[1],aim[2],aim[3]) setElementData ( localPlayer, "sound_mg2", sound_mg2 ) setTimer ( fireCustomWeapInTime2, 50, 1, gun, player ) end local sound_mg2 = getElementData ( localPlayer, "sound_mg2" ) if not isElement(sound_mg2) then local gun = getElementData ( localPlayer, "gun2" ) local aim = getElementData ( player, "attachedToWeapon_aim" ) local x,y,z = getElementPosition ( gun ) local sound_mg2 = playSound3D ( "files/mg.wav", x,y,z, true ) setSoundMaxDistance ( sound_mg2, 500 ) setWeaponState ( gun, "firing" ) setWeaponTarget(gun, aim[1],aim[2],aim[3]) setTimer ( fireCustomWeapInTime2, 50, 1, gun, player ) setElementData ( localPlayer, "sound_mg2", sound_mg2 ) end end addEvent("fire_client2", true) addEventHandler("fire_client2",getRootElement(), fire_client2) function fireCustomWeapInTime2 (gun, player) if isElement ( player ) and getElementData ( player, "attachedToWeapon_fire" ) then local aim = getElementData ( player, "attachedToWeapon_aim" ) setWeaponTarget(gun, aim[1],aim[2],aim[3]) timer = setTimer ( fireCustomWeapInTime2, 100, 1, gun, player ) else local sound_mg2 = getElementData ( localPlayer, "sound_mg2" ) local x,y,z = getElementPosition ( player ) setWeaponState ( gun, "ready" ) stopSound(sound_mg2) end end function fire_client3(player,px,py,pz) local sound_mg3 = getElementData ( localPlayer, "sound_mg3" ) if not isElement(sound_mg3) then local gun = getElementData ( localPlayer, "gun3" ) local aim = getElementData ( player, "attachedToWeapon_aim" ) local x,y,z = getElementPosition (localPlayer) local sound_mg3 = playSound3D ( "files/mg.wav", px,py,pz, true ) setSoundMaxDistance ( sound_mg3, 500 ) setWeaponState ( gun, "firing" ) setWeaponTarget(gun, aim[1],aim[2],aim[3]) setElementData ( localPlayer, "sound_mg3", sound_mg3 ) setTimer ( fireCustomWeapInTime3, 50, 1, gun, player ) end local sound_mg3 = getElementData ( localPlayer, "sound_mg3" ) if not isElement(sound_mg3) then local gun = getElementData ( localPlayer, "gun3" ) local aim = getElementData ( player, "attachedToWeapon_aim" ) local x,y,z = getElementPosition ( gun ) local sound_mg3 = playSound3D ( "files/mg.wav", x,y,z, true ) setSoundMaxDistance ( sound_mg3, 500 ) setWeaponState ( gun, "firing" ) setWeaponTarget(gun, aim[1],aim[2],aim[3]) setTimer ( fireCustomWeapInTime3, 50, 1, gun, player ) setElementData ( localPlayer, "sound_mg3", sound_mg3 ) end end addEvent("fire_client3", true) addEventHandler("fire_client3",getRootElement(), fire_client2) function fireCustomWeapInTime3 (gun, player) if isElement ( player ) and getElementData ( player, "attachedToWeapon_fire" ) then local aim = getElementData ( player, "attachedToWeapon_aim" ) setWeaponTarget(gun, aim[1],aim[2],aim[3]) timer = setTimer ( fireCustomWeapInTime3, 100, 1, gun, player ) else local sound_mg3 = getElementData ( localPlayer, "sound_mg3" ) local x,y,z = getElementPosition ( player ) setWeaponState ( gun, "ready" ) stopSound(sound_mg3) end end function stop_client() if inUse == true then local x,y,z = getElementPosition (localPlayer) triggerServerEvent("ready_server", localPlayer, x,y,z) end end bindKey ("mouse1", "up", stop_client) function stop(x,y,z) local sound_lastshoot = playSound3D ( "files/mg_lastshoot.wav", x,y,z ) setSoundMaxDistance ( sound_lastshoot, 500 ) end addEvent("ready_client", true) addEventHandler("ready_client",getRootElement(), stop) function createCol(posX,posY) local col = createColCircle ( posX+1,posY, 0.9 ) addEventHandler ( "onClientColShapeHit", col, onHit ) addEventHandler ( "onClientColShapeLeave", col, onLeave ) end addEvent("createCol", true) addEventHandler("createCol",getRootElement(), createCol) function onHit( theElement ) if inUse_s == false then if ( theElement == getLocalPlayer() ) and not isPedInVehicle(localPlayer) and inUse == false then local text2 = getElementData ( localPlayer, "text2" ) if not isElement(text2) then local text = guiCreateLabel( 0.470, 0.32, 4, 2, "Press USE [G] to use", true) local img = guiCreateStaticImage(0.57, 0.3, 0.09, 0.06, "files/mg42.png", true) guiSetFont ( text, "default-bold-small" ) setElementData (localPlayer, "text", text) setElementData (localPlayer, "img", img) end end end end function onLeave( theElement ) if ( theElement == getLocalPlayer() ) and not isPedInVehicle(localPlayer) and inUse == false then local text = getElementData ( localPlayer, "text" ) local img = getElementData ( localPlayer, "img" ) destroyElement(text) destroyElement(img) end end function createCol2(posX,posY) local col2 = createColCircle ( posX+1,posY, 0.9 ) addEventHandler ( "onClientColShapeHit", col2, onHit2 ) addEventHandler ( "onClientColShapeLeave", col2, onLeave2 ) end addEvent("createCol2", true) addEventHandler("createCol2",getRootElement(), createCol2) function onHit2(theElement) if inUse_s2 == false then if ( theElement == getLocalPlayer() ) and not isPedInVehicle(localPlayer) and inUse == false then local text2 = getElementData ( localPlayer, "text2" ) if not isElement(text2) then local text = guiCreateLabel( 0.470, 0.32, 4, 2, "Press USE [G] to use", true) local img = guiCreateStaticImage(0.57, 0.3, 0.09, 0.06, "files/mg42.png", true) guiSetFont ( text, "default-bold-small" ) setElementData (localPlayer, "text", text) setElementData (localPlayer, "img", img) end end end end function onLeave2(theElement) if ( theElement == getLocalPlayer() ) and not isPedInVehicle(localPlayer) and inUse == false then local text = getElementData ( localPlayer, "text" ) local img = getElementData ( localPlayer, "img" ) destroyElement(text) destroyElement(img) end end function createCol3(posX,posY) local col3 = createColCircle ( posX+1,posY, 0.9 ) addEventHandler ( "onClientColShapeHit", col3, onHit3 ) addEventHandler ( "onClientColShapeLeave", col3, onLeave3 ) end addEvent("createCol3", true) addEventHandler("createCol3",getRootElement(), createCol3) function onHit3(theElement) if inUse_s3 == false then if ( theElement == getLocalPlayer() ) and not isPedInVehicle(localPlayer) and inUse == false then local text2 = getElementData ( localPlayer, "text2" ) if not isElement(text2) then local text = guiCreateLabel( 0.470, 0.32, 4, 2, "Press USE [G] to use", true) local img = guiCreateStaticImage(0.57, 0.3, 0.09, 0.06, "files/mg42.png", true) guiSetFont ( text, "default-bold-small" ) setElementData (localPlayer, "text", text) setElementData (localPlayer, "img", img) end end end end function onLeave3(theElement) if ( theElement == getLocalPlayer() ) and not isPedInVehicle(localPlayer) and inUse == false then local text = getElementData ( localPlayer, "text" ) local img = getElementData ( localPlayer, "img" ) destroyElement(text) destroyElement(img) end end function causeCustomWeaponDamage(hitElement) if hitElement then local owner = getElementData(source,"owner") if getElementType ( hitElement ) == "vehicle" then triggerServerEvent ( "causeVehicleDamageFromMG", localPlayer, hitElement ) end end end addEventHandler("onClientWeaponFire", getRootElement(), causeCustomWeaponDamage) function DamageToPlayersFromCustomWeapons(target) if target == localPlayer then setElementHealth ( target, getElementHealth(target) - 8 ) end end addEventHandler("onClientWeaponFire", root, DamageToPlayersFromCustomWeapons) function getPositionInfrontOfElement(x,y,rotation, meters) posX = x - math.sin(math.rad(rotation)) * meters posY = y + math.cos(math.rad(rotation)) * meters return posX, posY, posZ end function findRotation(x1,y1,x2,y2) local t = -math.deg(math.atan2(x2-x1,y2-y1)) if t < 0 then t = t + 360 end; return t; end function getCameraRotation () local px, py, pz, lx, ly, lz = getCameraMatrix() local rotz = 6.2831853071796 - math.atan2 ( ( lx - px ), ( ly - py ) ) % 6.2831853071796 local rotx = math.atan2 ( lz - pz, getDistanceBetweenPoints2D ( lx, ly, px, py ) ) rotx = math.deg(rotx) rotz = -math.deg(rotz) return rotx, 180, rotz end function updatePlayerWeapon () if inUse == true then local x, y, z, lx, ly, lz = getCameraMatrix () local rot = findRotation ( x,y,lx,ly ) local rot2_x, rot_y, rot2_z = getCameraRotation() setElementRotation ( localPlayer, 0, 0, rot, "default", true ) triggerServerEvent ("rotatePlayerWeapon",localPlayer,rot,rot2_x) end end local root = getRootElement() local localPlayer = getLocalPlayer() local PI = math.pi local isEnabled = false local wasInVehicle = isPedInVehicle(localPlayer) local mouseSensitivity = 0.1 local rotX, rotY = 0,0 local mouseFrameDelay = 0 local idleTime = 2500 local fadeBack = false local fadeBackFrames = 50 local executeCounter = 0 local recentlyMoved = false local Xdiff,Ydiff local forceFadeBack = false function toggleCockpitView() if (not isEnabled) then isEnabled = true addEventHandler ("onClientPreRender", root, updateCamera) addEventHandler ("onClientCursorMove",root, freecamMouse) else --reset view isEnabled = false setCameraTarget (localPlayer, localPlayer) removeEventHandler ("onClientPreRender", root, updateCamera) removeEventHandler ("onClientCursorMove", root, freecamMouse) end end function updateCamera () if (isEnabled) then local nowTick = getTickCount() -- check if the last mouse movement was more than idleTime ms ago if (wasInVehicle and recentlyMoved and not fadeBack and startTick and nowTick - startTick > idleTime) or forceFadeBack then recentlyMoved = false fadeBack = true if rotX > 0 then Xdiff = rotX / fadeBackFrames elseif rotX < 0 then Xdiff = rotX / -fadeBackFrames end if rotY > 0 then Ydiff = rotY / fadeBackFrames elseif rotY < 0 then Ydiff = rotY / -fadeBackFrames end end if fadeBack then executeCounter = executeCounter + 1 if rotX > 0 then rotX = rotX - Xdiff elseif rotX < 0 then rotX = rotX + Xdiff end if rotY > 0 then rotY = rotY - Ydiff elseif rotY < 0 then rotY = rotY + Ydiff end if executeCounter >= fadeBackFrames then fadeBack = false executeCounter = 0 end end local camPosXr, camPosYr, camPosZr = getPedBonePosition (localPlayer, 6) local camPosXl, camPosYl, camPosZl = getPedBonePosition (localPlayer, 7) local camPosX, camPosY, camPosZ = (camPosXr + camPosXl) / 2, (camPosYr + camPosYl) / 2, (camPosZr + camPosZl) / 2 local roll = 0 inVehicle = isPedInVehicle(localPlayer) -- note the vehicle rotation if not inVehicle then local rx, ry, rz = getElementRotation(localPlayer) if wasInVehicle then rotX = rotX - math.rad(rz) --prevent camera from rotating when exiting a vehicle end cameraAngleX = rotX cameraAngleY = rotY end wasInVehicle = inVehicle local freeModeAngleZ = math.sin(cameraAngleY) local freeModeAngleY = math.cos(cameraAngleY) * math.cos(cameraAngleX) local freeModeAngleX = math.cos(cameraAngleY) * math.sin(cameraAngleX) -- calculate a target based on the current position and an offset based on the angle local camTargetX = camPosX + freeModeAngleX * 100 local camTargetY = camPosY + freeModeAngleY * 100 local camTargetZ = camPosZ + freeModeAngleZ * 100 -- Work out the distance between the target and the camera (should be 100 units) local camAngleX = camPosX - camTargetX local camAngleY = camPosY - camTargetY local camAngleZ = 0 -- we ignore this otherwise our vertical angle affects how fast you can strafe -- Calulcate the length of the vector local angleLength = math.sqrt(camAngleX*camAngleX+camAngleY*camAngleY+camAngleZ*camAngleZ) -- Normalize the vector, ignoring the Z axis, as the camera is stuck to the XY plane (it can't roll) local camNormalizedAngleX = camAngleX / angleLength local camNormalizedAngleY = camAngleY / angleLength local camNormalizedAngleZ = 0 -- We use this as our rotation vector local normalAngleX = 0 local normalAngleY = 0 local normalAngleZ = 1 local normalX = (camNormalizedAngleY * normalAngleZ - camNormalizedAngleZ * normalAngleY) local normalY = (camNormalizedAngleZ * normalAngleX - camNormalizedAngleX * normalAngleZ) local normalZ = (camNormalizedAngleX * normalAngleY - camNormalizedAngleY * normalAngleX) camTargetX = camPosX + freeModeAngleX * 100 camTargetY = camPosY + freeModeAngleY * 100 camTargetZ = camPosZ + freeModeAngleZ * 100 setCameraMatrix (camPosX, camPosY, camPosZ+0.2, camTargetX-140, camTargetY, camTargetZ, roll) end end function freecamMouse (cX,cY,aX,aY) if isCursorShowing() or isMTAWindowActive() then mouseFrameDelay = 5 return elseif mouseFrameDelay > 0 then mouseFrameDelay = mouseFrameDelay - 1 return end startTick = getTickCount() recentlyMoved = true if fadeBack then fadeBack = false executeCounter = 0 end local width, height = guiGetScreenSize() aX = aX - width / 2 aY = aY - height / 2 rotX = rotX + aX * mouseSensitivity * 0.01745 rotY = rotY - aY * mouseSensitivity * 0.01745 local pRotX, pRotY, pRotZ = getElementRotation (localPlayer) pRotZ = math.rad(pRotZ) if rotX > PI then rotX = rotX - 2 * PI elseif rotX < -PI then rotX = rotX + 2 * PI end if rotY > PI then rotY = rotY - 2 * PI elseif rotY < -PI then rotY = rotY + 2 * PI end if isPedInVehicle(localPlayer) then if rotY < -PI / 4 then rotY = -PI / 4 elseif rotY > PI/15 then rotY = PI/15 end else if rotY < -PI / 4 then rotY = -PI / 4 elseif rotY > PI / 2.1 then rotY = PI / 2.1 end end end function fps() if inUse == true then toggleCockpitView() end end --bindKey ( "mouse3", "down", fps) function aim_in() if inUse == true then removeEventHandler('onClientRender', root, renderVehCross ) addEventHandler('onClientRender', root, renderVehCross2 ) else removeEventHandler('onClientRender', root, renderVehCross ) end end --bindKey ("mouse2", "down", aim_in) function aim_out() if inUse == true then removeEventHandler('onClientRender', root, renderVehCross2 ) addEventHandler('onClientRender', root, renderVehCross ) end end --bindKey ("mouse2", "up", aim_out) function renderVehCross2 () if inUse == true then dxDrawImage (w/2-28, h/2-32,58,58,"files/crosshair.png",0,0,0) setCameraFieldOfView("player",50) end end function replaceskin() txd = engineLoadTXD ( "files/m4.txd" ) engineImportTXD ( txd, 356) dff = engineLoadDFF ( "files/m4.dff", 356) engineReplaceModel ( dff, 356) end addEventHandler ( "onClientResourceStart", getResourceRootElement(getThisResource()), replaceskin) addCommandHandler( "on", function () setDevelopmentMode ( true ) end ) Server Side: tion = isElementWithinColShape ( source, col_s ) local detection2 = isElementWithinColShape ( source, col_s2 ) local detection3 = isElementWithinColShape ( source, col_s3 ) if detection then local weap = getElementData ( mg, "weapon_base" ) local weap2 = getElementData ( mg, "weapon" ) local x,y,z = getElementRotation (weap) setElementRotation ( weap, 0,0,rot+97) if rot < 40 then --outputChatBox ( "< 40" ) --triggerClientEvent("right", root) end if rot > 140 then --outputChatBox ( "> 180" ) --triggerClientEvent("left", root) end local x,y,z,rx,ry,rz = getElementAttachedOffsets (weap2) if -rot2_x < 8 then setElementAttachedOffsets ( weap2, x, y, z, rx, -rot2_x+10, rz) end elseif detection2 then local weap = getElementData ( mg2, "weapon_base" ) local weap2 = getElementData ( mg2, "weapon" ) local x,y,z = getElementRotation (weap) setElementRotation ( weap, 0,0,rot+97) if rot < 40 then --outputChatBox ( "< 40" ) --triggerClientEvent("right", root) end if rot > 140 then --outputChatBox ( "> 180" ) --triggerClientEvent("left", root) end local x,y,z,rx,ry,rz = getElementAttachedOffsets (weap2) if -rot2_x < 8 then setElementAttachedOffsets ( weap2, x, y, z, rx, -rot2_x+10, rz) end elseif detection3 then local weap = getElementData ( mg3, "weapon_base" ) local weap2 = getElementData ( mg3, "weapon" ) local x,y,z = getElementRotation (weap) setElementRotation ( weap, 0,0,rot+97) if rot < 40 then --outputChatBox ( "< 40" ) --triggerClientEvent("right", root) end if rot > 140 then --outputChatBox ( "> 180" ) --triggerClientEvent("left", root) end local x,y,z,rx,ry,rz = getElementAttachedOffsets (weap2) if -rot2_x < 8 then setElementAttachedOffsets ( weap2, x, y, z, rx, -rot2_x+10, rz) end end end addEvent("rotatePlayerWeapon", true) addEventHandler("rotatePlayerWeapon",getRootElement(), rotate) function fire_server(player,px,py,pz) local detection = isElementWithinColShape ( source, col_s ) local detection2 = isElementWithinColShape ( source, col_s2 ) local detection3 = isElementWithinColShape ( source, col_s3 ) if detection then triggerClientEvent("fire_client", getRootElement(), player,px,py,pz) elseif detection2 then triggerClientEvent("fire_client2", getRootElement(), player,px,py,pz) elseif detection3 then triggerClientEvent("fire_client3", getRootElement(), player,px,py,pz) end end addEvent("fire_server", true) addEventHandler("fire_server",getRootElement(), fire_server) function ready_server(player,x,y,z) triggerClientEvent("ready_client", getRootElement(), player,x,y,z) end addEvent("ready_server", true) addEventHandler("ready_server",getRootElement(), ready_server) the script is createing a 2 or 3 machine gun's but i can't found the functoin of createing it to manipulte and mounted on a vehicle i want the machine gun to mount in the back of bobcat i think the code is flexible and my problem is esay to solve for those how has a exp in Lua thank alot Link to comment
HustraDev Posted October 1, 2019 Author Share Posted October 1, 2019 no help for now !? Link to comment
Moderators IIYAMA Posted October 1, 2019 Moderators Share Posted October 1, 2019 (edited) Locked for topic bumping. If nobody wants to help you, then there must be something wrong with the information you provide. Or maybe your request is unacceptable. Think about it. Edited October 1, 2019 by IIYAMA Link to comment
Recommended Posts