Jump to content

misiles en auto


Recommended Posts

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...