PhantomDamn Posted June 4, 2013 Share Posted June 4, 2013 hola como estan... como hago que este script funcione solo en algun auto [iD] server side -- Script by MuLTi! Do not remove credits! -- addEvent("onRocketCreation", true) addEventHandler("onRocketCreation", getRootElement(), function(x, y, z, hx, hy, hz, time) local car = getPedOccupiedVehicle(source) if not(car) then return end local rx, ry, rz = getElementRotation(car) local object = createObject(3786, x, y, z+0.5, rx*1.01, ry*1.01, rz-90) local marker = createMarker(x, y, z+0.5, "corona", 1.0, 0, 255, 0) triggerClientEvent(getRootElement(), "onClientRocketFire", source, object) setElementData(object, "rocket.state", true) attachElements(marker, object) setElementCollisionsEnabled(object, false) setObjectScale(object, 1) moveObject(object, time, hx, hy, hz, 0, 0, 0, "InQuad") setTimer( function() destroyElement(object) destroyElement(marker) createExplosion(hx, hy, hz, 7) createExplosion(hx, hy, hz+4, 4) end, time, 1) end) Client side -- Script by MuLTi! Do not remove credits! -- local gMe = getLocalPlayer() local cando = true local key = "vehicle_fire" local waitseconds = 1 local enabled = true function renderRocketFX() for index, object in pairs(getElementsByType("object")) do if(getElementData(object, "rocket.state") == true) then local x1, y1, z1 = getElementPosition(object) for i = 1, 5, 1 do fxAddTyreBurst(x1, y1, z1, 0, 0, 0) fxAddPunchImpact(x1, y1, z1, 0, 0, 0) end end end end addEventHandler("onClientRender", getRootElement(), renderRocketFX) addEventHandler("onClientPreRender", getRootElement(), renderRocketFX) addEventHandler("onClientRender", getRootElement(), function() if(enabled == true) then local veh = getPedOccupiedVehicle(gMe) if not(veh) then return end local col2 = getElementData(veh, "r.col2") local col1 = getElementData(veh, "r.col1") if not(col2) or not(col1) then return end local x, y, z = getElementPosition(col2) local x1, y1, z1 = getElementPosition(col1) z1 = z1+getElementDistanceFromCentreOfMassToBaseOfModel(veh)*2 local hit, x2, y2, z2 = processLineOfSight(x, y, z, x1, y1, z1) if not(x2) or not(y2) or not(z2) then x2, y2, z2 = x, y, z end local sx, sy = getScreenFromWorldPosition(x2, y2, z2) if not(sx) or not(sy) then return end dxDrawLine(sx, sy-12.9, sx, sy+12.9, tocolor(0, 255, 0), 2) dxDrawLine(sx-12.9, sy, sx+12.9, sy, tocolor(0, 255, 0), 2) end end) addEvent("onClientRocketFire", true) addEventHandler("onClientRocketFire", getRootElement(), function(theRocket) local x, y, z = getElementPosition(theRocket) local sound = playSound3D("rocket.mp3", x, y, z, false) setSoundMaxDistance(sound, 100) attachElements(sound, theRocket) end) function fireVehicleRocket() if(cando == false) then return end if(enabled == false) then return end local veh = getPedOccupiedVehicle(gMe) if(veh) then else unbindKey(key, "up", fireVehicleRocket) return end local col1 = getElementData(veh, "r.col1") local col2 = getElementData(veh, "r.col2") local x1, y1, z1 = getElementPosition(col1) local x2, y2, z2 = getElementPosition(col2) z1 = z1+getElementDistanceFromCentreOfMassToBaseOfModel(veh)*2 local hit, hx, hy, hz = processLineOfSight(x1, y1, z1, x2, y2, z2) if not(hx) or not(hy) or not(hz) then hx, hy, hz = x2, y2, z2 end local distanz = getDistanceBetweenPoints3D(x1, y1, z1, hx, hy, hz) local time = distanz*10 cando = false setTimer(function() cando = true end, waitseconds*1000, 1) triggerServerEvent("onRocketCreation", gMe, x1, y1, z1, hx, hy, hz, time) end addEventHandler("onClientPlayerWasted", gMe, function() unbindKey(key, "up", fireVehicleRocket) end) addEventHandler("onClientVehicleExit", getRootElement(), function(thePlayer) if(thePlayer ~= gMe) then return end unbindKey(key, "up", fireVehicleRocket) end) addEventHandler("onClientVehicleEnter", getRootElement(), function(thePlayer) if(thePlayer ~= gMe) then return end bindKey(key, "up", fireVehicleRocket) end) function checkVehicleCol() for index, car in pairs(getElementsByType("vehicle")) do if not(getElementData(car, "r.col1")) then local col1 = createColSphere(0, 0, 0, 2) local col2 = createColSphere(0, 0, 0, 2) setElementData(car, "r.col1", col1, false) setElementData(car, "r.col2", col2, false) attachElements(col1, car) attachElements(col2, car, 0, 250, 0) end end end setTimer(checkVehicleCol, 1000, 1) addEventHandler("onClientResourceStop", getResourceRootElement(getThisResource()), function() for index, car in pairs(getElementsByType("vehicle")) do setElementData(car, "r.col1", nil, false) setElementData(car, "r.col2", nil, false) end end) addCommandHandler("missiles", function() enabled = not enabled local shit if(enabled == true) then shit = "enabled" else shit = "disabled" end outputChatBox("Missiles have been "..shit..".", 0, 255, 255) end) -- PROJECTILE VERSION! -- --[[ local x1, y1, z1 = getElementPosition(col1) local rx, ry, rz = getElementRotation(veh) local rotX,rotY,rotZ = getElementRotation(veh) local x, y, z = getElementPosition(veh) local matrix = getElementMatrix(veh) local offX = 0 * matrix[1][1] + 1 * matrix[2][1] + 0 * matrix[3][1] + 1 * matrix[4][1] local offY = 0 * matrix[1][2] + 1 * matrix[2][2] + 0 * matrix[3][2] + 1 * matrix[4][2] local offZ = 0 * matrix[1][3] + 1 * matrix[2][3] + 0 * matrix[3][3] + 1 * matrix[4][3] local vx = offX - x local vy = offY - y local vz = offZ - z x = 0 * matrix[1][1] + 3 * matrix[2][1] + 0 * matrix[3][1] + 1 * matrix[4][1] y = 0 * matrix[1][2] + 3 * matrix[2][2] + 0 * matrix[3][2] + 1 * matrix[4][2] z = 0 * matrix[1][3] + 3 * matrix[2][3] + 0 * matrix[3][3] + 1 * matrix[4][3] createProjectile(gMe, 19, x, y, z, 200, nil, 0, 0, 360 - rotZ, vx, vy, vz) --]] Link to comment
AlvareZ_ Posted June 4, 2013 Share Posted June 4, 2013 No testeado if (getElementModel ( theVehicle ) ) = "id" then Link to comment
Recommended Posts