Jump to content

Общий мини "HELP ME" топик по скриптингу


Recommended Posts

Мне нужно локализовать одно авто из всех, а не восстанавливать все авто на сервере, т.к. я имею еще и личный транспорт, они должны платить, если авто взорвется.

Т.е. есть все авто, из них 10% - такси и лимузины для работы, если 1 машина взрывается или ее положение изменяется, то через опр. время она должна среспауниться.

Вот что я получил, но я не знаю как вытащить всю строку из таблицы, чтобы задать аргумент одной локальной машины (а1, a2,.. и vehicle[1],... не считайте как правильные, т.к. одних уже не существует, другие здесь не уместны):

    local carsR = { 
    { 420, 1714.30005, 1470.5, 10.6, 0, 0, 342.498 }, 
    { 420, 1711.59998, 1460.5, 10.6, 0, 0, 344.493 }, 
    { 420, 1708.5, 1450.40002, 10.6, 0, 0, 344.993 }, 
    { 420, 1706.90002, 1420.59998, 10.6, 0, 0, 5.493 }, 
    { 420, 1708.40002, 1412.09998, 10.6, 0, 0, 11.488 }, 
    { 420, 1710.09998, 1404.5, 10.6, 0, 0, 5.493 }, 
    { 420, 1719.40002, 1411.80005, 10.6, 0, 0, 10.736 }, 
    { 420, 1717.40002, 1434.69995, 10.4, 0, 0, 358.734 }, 
    { 409, 2040.09998, 1008.59998, 10.6, 0, 0, 180 }, 
    { 409, 2040.09961, 999.59961, 10.6, 0, 0, 180 }, 
    { 409, 2040.09961, 1017.7998, 10.6, 0, 0, 180 } 
    } 
     
    function createVeh () 
            for _, vehicle in ipairs ( carsR ) do 
            local id, x, y, z, rx, ry, rz = unpack ( vehicle ) 
            veh = createVehicle( id, x, y, z, rx, ry, rz ) 
        end 
    end 
    addEventHandler("onResourceStart", resourceRoot, createVeh) 
     
    function respawnExplodedVehicle() 
        for _, vehicle in ipairs ( carsR ) do 
        if isVehicleBlown ( vehicle[1] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[1] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[2] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[2] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[3] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[3] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[4] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[4] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[5] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[5] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[6] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[6] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[7] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[7] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[8] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[8] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[9] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[9] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[10] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[10] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[11] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[11] )  
        end, 10000, 1, source) 
        else return end 
        end 
    end 
    addEventHandler("onVehicleExplode", getRootElement(), respawnExplodedVehicle) 
             
    function respPosVehicle ( ) 
        for _, vehicle in ipairs ( carsR ) do 
            local a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 = unpack ( vehicle ) 
        if getElementPosition ( a1 ) ~= a1 then 
        setTimer(function()  
        respawnVehicle ( a1 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a2 ) ~= a2 then 
        setTimer(function()  
        respawnVehicle ( a2 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a3 ) ~= a3 then 
        setTimer(function()  
        respawnVehicle ( a3 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a4 ) ~= a4 then 
        setTimer(function()  
        respawnVehicle ( a4 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a5 ) ~= a5 then 
        setTimer(function()  
        respawnVehicle ( a5 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a6 ) ~= a6 then 
        setTimer(function()  
        respawnVehicle ( a6 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a7 ) ~= a7 then 
        setTimer(function()  
        respawnVehicle ( a7 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a8 ) ~= a8 then 
        setTimer(function()  
        respawnVehicle ( a8 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a9 ) ~= a9 then 
        setTimer(function()  
        respawnVehicle ( a9 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a10 ) ~= a10 then 
        setTimer(function()  
        respawnVehicle ( a10 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a11 ) ~= a11 then 
        setTimer(function()  
        respawnVehicle ( a11 ) 
        end, 10000, 1, source) else return end 
        end 
    end 
    addEventHandler("onPlayerQuit", getRootElement(), respPosVehicle) 

Link to comment

Такой вопрос. Как разумнее хранить дату различных элементов. Через setElementData или в специально созданных таблицах? Какой способ будет предоставлять наибольшее быстродействие?

Link to comment
Мне нужно локализовать одно авто из всех, а не восстанавливать все авто на сервере, т.к. я имею еще и личный транспорт, они должны платить, если авто взорвется.

Т.е. есть все авто, из них 10% - такси и лимузины для работы, если 1 машина взрывается или ее положение изменяется, то через опр. время она должна среспауниться.

Вот что я получил, но я не знаю как вытащить всю строку из таблицы, чтобы задать аргумент одной локальной машины (а1, a2,.. и vehicle[1],... не считайте как правильные, т.к. одних уже не существует, другие здесь не уместны):

    local carsR = { 
    { 420, 1714.30005, 1470.5, 10.6, 0, 0, 342.498 }, 
    { 420, 1711.59998, 1460.5, 10.6, 0, 0, 344.493 }, 
    { 420, 1708.5, 1450.40002, 10.6, 0, 0, 344.993 }, 
    { 420, 1706.90002, 1420.59998, 10.6, 0, 0, 5.493 }, 
    { 420, 1708.40002, 1412.09998, 10.6, 0, 0, 11.488 }, 
    { 420, 1710.09998, 1404.5, 10.6, 0, 0, 5.493 }, 
    { 420, 1719.40002, 1411.80005, 10.6, 0, 0, 10.736 }, 
    { 420, 1717.40002, 1434.69995, 10.4, 0, 0, 358.734 }, 
    { 409, 2040.09998, 1008.59998, 10.6, 0, 0, 180 }, 
    { 409, 2040.09961, 999.59961, 10.6, 0, 0, 180 }, 
    { 409, 2040.09961, 1017.7998, 10.6, 0, 0, 180 } 
    } 
     
    function createVeh () 
            for _, vehicle in ipairs ( carsR ) do 
            local id, x, y, z, rx, ry, rz = unpack ( vehicle ) 
            veh = createVehicle( id, x, y, z, rx, ry, rz ) 
        end 
    end 
    addEventHandler("onResourceStart", resourceRoot, createVeh) 
     
    function respawnExplodedVehicle() 
        for _, vehicle in ipairs ( carsR ) do 
        if isVehicleBlown ( vehicle[1] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[1] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[2] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[2] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[3] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[3] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[4] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[4] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[5] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[5] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[6] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[6] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[7] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[7] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[8] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[8] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[9] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[9] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[10] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[10] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[11] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[11] )  
        end, 10000, 1, source) 
        else return end 
        end 
    end 
    addEventHandler("onVehicleExplode", getRootElement(), respawnExplodedVehicle) 
             
    function respPosVehicle ( ) 
        for _, vehicle in ipairs ( carsR ) do 
            local a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 = unpack ( vehicle ) 
        if getElementPosition ( a1 ) ~= a1 then 
        setTimer(function()  
        respawnVehicle ( a1 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a2 ) ~= a2 then 
        setTimer(function()  
        respawnVehicle ( a2 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a3 ) ~= a3 then 
        setTimer(function()  
        respawnVehicle ( a3 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a4 ) ~= a4 then 
        setTimer(function()  
        respawnVehicle ( a4 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a5 ) ~= a5 then 
        setTimer(function()  
        respawnVehicle ( a5 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a6 ) ~= a6 then 
        setTimer(function()  
        respawnVehicle ( a6 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a7 ) ~= a7 then 
        setTimer(function()  
        respawnVehicle ( a7 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a8 ) ~= a8 then 
        setTimer(function()  
        respawnVehicle ( a8 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a9 ) ~= a9 then 
        setTimer(function()  
        respawnVehicle ( a9 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a10 ) ~= a10 then 
        setTimer(function()  
        respawnVehicle ( a10 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a11 ) ~= a11 then 
        setTimer(function()  
        respawnVehicle ( a11 ) 
        end, 10000, 1, source) else return end 
        end 
    end 
    addEventHandler("onPlayerQuit", getRootElement(), respPosVehicle) 

В

    function createVeh () 
            for _, vehicle in ipairs ( carsR ) do 
            local id, x, y, z, rx, ry, rz = unpack ( vehicle ) 
            veh = createVehicle( id, x, y, z, rx, ry, rz ) 
        end 
    end 
    addEventHandler("onResourceStart", resourceRoot, createVeh) 

Можно сделать что-то типа

    function createVeh () 
            number = 0 
            for _, vehicle in ipairs ( carsR ) do 
            local id, x, y, z, rx, ry, rz = unpack ( vehicle ) 
            veh = createVehicle( id, x, y, z, rx, ry, rz ) 
            number = number + 1 
            setElementData(veh,"nomer",number) 
        end 
    end 
    addEventHandler("onResourceStart", resourceRoot, createVeh) 

Потом не нужно будет делать 100500 проверок на "взорваность"

nom = getElementData(source,"nomer")

respawnVehicle(vehicle[nom])

Link to comment
Мне нужно локализовать одно авто из всех, а не восстанавливать все авто на сервере, т.к. я имею еще и личный транспорт, они должны платить, если авто взорвется.

Т.е. есть все авто, из них 10% - такси и лимузины для работы, если 1 машина взрывается или ее положение изменяется, то через опр. время она должна среспауниться.

Вот что я получил, но я не знаю как вытащить всю строку из таблицы, чтобы задать аргумент одной локальной машины (а1, a2,.. и vehicle[1],... не считайте как правильные, т.к. одних уже не существует, другие здесь не уместны):

    local carsR = { 
    { 420, 1714.30005, 1470.5, 10.6, 0, 0, 342.498 }, 
    { 420, 1711.59998, 1460.5, 10.6, 0, 0, 344.493 }, 
    { 420, 1708.5, 1450.40002, 10.6, 0, 0, 344.993 }, 
    { 420, 1706.90002, 1420.59998, 10.6, 0, 0, 5.493 }, 
    { 420, 1708.40002, 1412.09998, 10.6, 0, 0, 11.488 }, 
    { 420, 1710.09998, 1404.5, 10.6, 0, 0, 5.493 }, 
    { 420, 1719.40002, 1411.80005, 10.6, 0, 0, 10.736 }, 
    { 420, 1717.40002, 1434.69995, 10.4, 0, 0, 358.734 }, 
    { 409, 2040.09998, 1008.59998, 10.6, 0, 0, 180 }, 
    { 409, 2040.09961, 999.59961, 10.6, 0, 0, 180 }, 
    { 409, 2040.09961, 1017.7998, 10.6, 0, 0, 180 } 
    } 
     
    function createVeh () 
            for _, vehicle in ipairs ( carsR ) do 
            local id, x, y, z, rx, ry, rz = unpack ( vehicle ) 
            veh = createVehicle( id, x, y, z, rx, ry, rz ) 
        end 
    end 
    addEventHandler("onResourceStart", resourceRoot, createVeh) 
     
    function respawnExplodedVehicle() 
        for _, vehicle in ipairs ( carsR ) do 
        if isVehicleBlown ( vehicle[1] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[1] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[2] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[2] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[3] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[3] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[4] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[4] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[5] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[5] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[6] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[6] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[7] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[7] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[8] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[8] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[9] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[9] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[10] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[10] )  
        end, 10000, 1, source) 
        else return end 
        if isVehicleBlown ( vehicle[11] ) == true then 
        setTimer(function()  
        respawnVehicle ( vehicle[11] )  
        end, 10000, 1, source) 
        else return end 
        end 
    end 
    addEventHandler("onVehicleExplode", getRootElement(), respawnExplodedVehicle) 
             
    function respPosVehicle ( ) 
        for _, vehicle in ipairs ( carsR ) do 
            local a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 = unpack ( vehicle ) 
        if getElementPosition ( a1 ) ~= a1 then 
        setTimer(function()  
        respawnVehicle ( a1 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a2 ) ~= a2 then 
        setTimer(function()  
        respawnVehicle ( a2 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a3 ) ~= a3 then 
        setTimer(function()  
        respawnVehicle ( a3 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a4 ) ~= a4 then 
        setTimer(function()  
        respawnVehicle ( a4 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a5 ) ~= a5 then 
        setTimer(function()  
        respawnVehicle ( a5 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a6 ) ~= a6 then 
        setTimer(function()  
        respawnVehicle ( a6 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a7 ) ~= a7 then 
        setTimer(function()  
        respawnVehicle ( a7 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a8 ) ~= a8 then 
        setTimer(function()  
        respawnVehicle ( a8 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a9 ) ~= a9 then 
        setTimer(function()  
        respawnVehicle ( a9 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a10 ) ~= a10 then 
        setTimer(function()  
        respawnVehicle ( a10 ) 
        end, 10000, 1, source) else return end 
        if getElementPosition ( a11 ) ~= a11 then 
        setTimer(function()  
        respawnVehicle ( a11 ) 
        end, 10000, 1, source) else return end 
        end 
    end 
    addEventHandler("onPlayerQuit", getRootElement(), respPosVehicle) 

В

    function createVeh () 
            for _, vehicle in ipairs ( carsR ) do 
            local id, x, y, z, rx, ry, rz = unpack ( vehicle ) 
            veh = createVehicle( id, x, y, z, rx, ry, rz ) 
        end 
    end 
    addEventHandler("onResourceStart", resourceRoot, createVeh) 

Можно сделать что-то типа

    function createVeh () 
            number = 0 
            for _, vehicle in ipairs ( carsR ) do 
            local id, x, y, z, rx, ry, rz = unpack ( vehicle ) 
            veh = createVehicle( id, x, y, z, rx, ry, rz ) 
            number = number + 1 
            setElementData(veh,"nomer",number) 
        end 
    end 
    addEventHandler("onResourceStart", resourceRoot, createVeh) 

Потом не нужно будет делать 100500 проверок на "взорваность"

nom = getElementData(source,"nomer")

respawnVehicle(vehicle[nom])

Благодарю за ответ. И извиняюсь за то, что не допонимаю здесь всё.

    local carsR = { 
    { 420, 1714.30005, 1470.5, 10.6, 0, 0, 342.498 }, 
    { 420, 1711.59998, 1460.5, 10.6, 0, 0, 344.493 }, 
    { 420, 1708.5, 1450.40002, 10.6, 0, 0, 344.993 }, 
    { 420, 1706.90002, 1420.59998, 10.6, 0, 0, 5.493 }, 
    { 420, 1708.40002, 1412.09998, 10.6, 0, 0, 11.488 }, 
    { 420, 1710.09998, 1404.5, 10.6, 0, 0, 5.493 }, 
    { 420, 1719.40002, 1411.80005, 10.6, 0, 0, 10.736 }, 
    { 420, 1717.40002, 1434.69995, 10.4, 0, 0, 358.734 }, 
    { 409, 2040.09961, 1008.59998, 10.6, 0, 0, 180 }, -- Создается не лимузин, а такси, который указан выше под ID 420 :\ Должно быть все ОК, но это не так... 
    { 409, 2040.09961, 999.59961, 10.6, 0, 0, 180 }, -- Создается не лимузин, а такси, который указан выше под ID 420 :\ Должно быть все ОК, но это не так... 
    { 409, 2040.09961, 1017.7998, 10.6, 0, 0, 180 } -- Создается не лимузин, а такси, который указан выше под ID 420 :\ Должно быть все ОК, но это не так... 
    } 
     
        function createVeh () 
                number = 0 -- nil изначально 
                for _, vehicle in ipairs ( carsR ) do 
                local id, x, y, z, rx, ry, rz = unpack ( vehicle ) 
                veh = createVehicle( id, x, y, z, rx, ry, rz ) 
                number = number + 1 -- Коробка 'number' в которой идет счет всех созданых авто 
                setElementData(veh,"nomer",number) -- задаем ключ 'nomer' для данных авто, прикрепляем к ним свой номер (Если можно, расскажите про 2-ой аргумент поподробнее, не совсем понимаю) 
            end 
        end 
        addEventHandler("onResourceStart", resourceRoot, createVeh) 
         
    function respawnExplodedVehicle() 
        nom = getElementData(source,"nomer") -- Извлекаем данные из ключа 'nomer', т.к. идет посылка запроса 'source', то он будет считываться из данных, которые мы присвоили 
        if isVehicleBlown ( vehicle[nom] ) == true then -- Проверка всех автомобилей, если взорваны, то установить таймер и зареспаунить все авто. Я так понимаю. 
        setTimer(function()  
        respawnVehicle ( vehicle[nom] )  
        end, 10000, 1, source) 
        else return end 
    end 
    addEventHandler("onVehicleExplode", getRootElement(), respawnExplodedVehicle) 
             
    function respPosVehicle ( ) 
        nom = getElementData(source,"nomer") -- Здесь вообще неразбериха получается какая-то 
        if getElementPosition ( vehicle[nom] ) ~= vehicle[nom] then 
        setTimer(function()  
        respawnVehicle( vehicle[nom] ) 
        end, 10000, 1, source) else return end 
    end 
    addEventHandler("onPlayerQuit", getRootElement(), respPosVehicle) 

Link to comment
Для респПос не подойдет.А остальное, что там обьяснять то ?

Я привел свое объяснение '--', правильно ли я рассуждаю?

В данном коде мне пишет строку красным цветом, не помню, что там написано.

Link to comment
Для респПос не подойдет.А остальное, что там обьяснять то ?

Я привел свое объяснение '--', правильно ли я рассуждаю?

В данном коде мне пишет строку красным цветом, не помню, что там написано.

На счет лимузинов - хз. На счет проверки взрыва - там не все тачки. Мы берем ее номер и по этому номеру с ей что-либо делаем

Link to comment

я написал простой скрипт при убийстве выпадают пикапы с оружием,но проблема в том что если убитый стоял рядом за стеной иногда пикапы создаются за текстурой! как это избежать?

Есть вариант создать пикапы точно на координатах убитого но не красиво все в одном пикапе

Link to comment
--clientside 
--x1,y1,z1 - координаты умершего игрока 
--x2,y2,z2 - предполагаемые координаты пикапа 
  
if isLineOfSightClear(x1,y1,z1,x2,y2,z2) then 
--createPickup 
--можно ставить пикап 
else 
--скорее всего пикап попадет внутрь другого элемента 
end 

Можно исключить из проверки машины, других игроков и т.п. (подробнее на вики)

Link to comment

тут опять проблема может я не чего не понимаю

есть код

  
     local x,y,z =getElementPosition(killed) 
         
    for i=1,12 do  
      local ammo=getPedWeapon(killed,i) 
      local tammo=getPedTotalAmmo(killed,i)  
      if ammo~=0 and tammo >1 then 
createPickup(x+math.random(),y-math.random(0.1,0.9),z,2,ammo,0,tammo) 
end 
end 
  

они даже не крутиться и не берутся!

я думал что если указан тип, ид оружия,0 это без респавна, патроны то игра все сделает сама; хрен

надо вешать обработчик пикапа?

Link to comment
Как сделать проверку по наведению курсора на кнопку? или это через позицию курсора самому делать?
  
addEventHandler( "onClientMouseEnter", root,  
    function ( x, y ) 
        if ( source == Button ) then 
            -- курсор попал на кнопку Button 
        end 
    end 
) 
  

Link to comment
Как сделать проверку по наведению курсора на кнопку? или это через позицию курсора самому делать?
  
addEventHandler( "onClientMouseEnter", root,  
    function ( x, y ) 
        if ( source == Button ) then 
            -- курсор попал на кнопку Button 
        end 
    end 
) 
  

А ещё чтобы не сравнивать source с Button, нужно вешать событие на сам Button, тем самым сэкономив ресурсы CPU

Как сделать проверку по наведению курсора на кнопку? или это через позицию курсора самому делать?

Есть событие входа\выхода курсора, оно показано выше. Но ты говоришь о проверке - сравнивай координаты.

Link to comment
Сделал два dxDrawText, один основной текст, второй как тень основного. Как убрать коды цветов RRGGBB из второго текста? Они тень тоже красят.

Не могу понять что ты хочешь сделать, объясни.

Как вариант, могу предложить аргумент у dxDrawText - colorCoded

Link to comment
Сделал два dxDrawText, один основной текст, второй как тень основного. Как убрать коды цветов RRGGBB из второго текста? Они тень тоже красят.

Не могу понять что ты хочешь сделать, объясни.

Как вариант, могу предложить аргумент у dxDrawText - colorCoded

Смотри. Два текста

Тень

dxDrawText ( text, 21, posY+1, 200, 400, tocolor ( 0, 0, 0, 255 ), 1.0, "default-bold", "left","top",false,false,false,true )  

и оригинальный текст

dxDrawText ( text, 20, posY, 200, 400, tocolor ( 255, 255, 255, 255 ), 1.0, "default-bold", "left","top",false,false,false,true ) 

Тест используется одинаковый. Тень нужна только черного цвета, а при использовании кодов #FFFFFF меняется цвет у обоих текстов. Последний парамерт включает цветовые коды (true), но если его выключить он пишет коды текстом (#FFFFFF). Дак вот как сделать чтобы в теневом тексте не писало эти коды и не меняло цвета текстов?

Link to comment

Только что попробовал твой код. Все работает. Тень черного цвета, основной текст белого. Разве что если прибавлять +1, то это не так заметно, при +2 заметно куда лучше.

Link to comment

Здравствуйте. Когда время анимации ставишь на нуль, то пед получает возможность бегать и вообще передвигаться с анимацией. Так вот, а если я ставлю параметр loop на false, то в конце анимации у педа "замораживаются" руки, и отмораживаются только когда он прыгнет, сядет в машину и пр. Так вот, как разморозить их в конце анимации без физ. манипуляций? Пробовал таймером обнулить анимку: setPedAnimation(source) - не помогает. Желательно конечно обнулить её в самом конце.

Link to comment
Только что попробовал твой код. Все работает. Тень черного цвета, основной текст белого. Разве что если прибавлять +1, то это не так заметно, при +2 заметно куда лучше.

ууууу блин... да я говорю что вставка цветовых кодов все косячит. ты попробуй text сделать "тестовый #FFFF00текст"

Link to comment
Только что попробовал твой код. Все работает. Тень черного цвета, основной текст белого. Разве что если прибавлять +1, то это не так заметно, при +2 заметно куда лучше.

ууууу блин... да я говорю что вставка цветовых кодов все косячит. ты попробуй text сделать "тестовый #FFFF00текст"

Если у тебя в text содержится строка уже с кодом, т.е. text = "#FFFF00Ололо", то тебе понадобится string.gsub. С помощью ее убираешь все коды и выводишь чистый черный текст.

Вот, как сделай:

dxDrawText ( string.gsub(text, "%#%w%w%w%w%w%w", ""), 21, posY+1, 200, 400, tocolor ( 0, 0, 0, 255 ), 1.0, "default-bold", "left","top",false,false,false,true ) 

Может кто даст короче регулярку. Просто я не нашел инфы, как захватывать определенное кол-во символов.

Link to comment
Только что попробовал твой код. Все работает. Тень черного цвета, основной текст белого. Разве что если прибавлять +1, то это не так заметно, при +2 заметно куда лучше.

ууууу блин... да я говорю что вставка цветовых кодов все косячит. ты попробуй text сделать "тестовый #FFFF00текст"

Если у тебя в text содержится строка уже с кодом, т.е. text = "#FFFF00Ололо", то тебе понадобится string.gsub. С помощью ее убираешь все коды и выводишь чистый черный текст.

Вот, как сделай:

dxDrawText ( string.gsub(text, "%#%w%w%w%w%w%w", ""), 21, posY+1, 200, 400, tocolor ( 0, 0, 0, 255 ), 1.0, "default-bold", "left","top",false,false,false,true ) 

Может кто даст короче регулярку. Просто я не нашел инфы, как захватывать определенное кол-во символов.

я уже разобрался) спасибо

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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