Jump to content

Criar Markers Spawns De Skin ETC. Por Comando


Recommended Posts

ola, gostaria de saber como faz para criar Markers de spawn de carro, spawn de skin, spawn de colete e vida e etc, por comando, ex: /markercarro (id do carro)*criar marker de spawn de carro com o id do veiculo espeficicado nas minhas coordenadas, seria um script para facilitar e não precisar ficar pegando coordenadas e mudando diretamente em um script

Link to comment

Você ira ter que usar addCommandHandler tambem mecher com tabelas
e tera que usar algum salvamento para salvar a posição do marker, e qual tipo ele é, oque ele vai fazer pegar etc
voce pode fazer isso ultilizando ElementData e salvando com setAccountData
Ou usando database.

Realmente é um sistema bastante complexo mas tente pelo menos começar o seu projeto depois mande aqui que poderemos te ajudar a finaliza-lo

Link to comment
  • Other Languages Moderators

Olá!

Eu fiz um código e não testei, mas acredito que deve funcionar:

Spoiler
-- Local tables
local markers = {
    available_types = {
        ["carro"]   = true,
        ["skin"]    = true,
        ["arma"]    = true
    },
    elements = {},
    event_element = createElement("auto_markers"),
    created_vehicles = {}
}

-- Local functions
local function setMarkerAssets(marker, type, id)
    markers.elements[marker] = { type = type, id = id }
end

local function destroyVehicle(player)
    local veh = markers.created_vehicles[player]
    if veh then
        if isElement(veh) then
            destroyElement(veh)
        end
        markers.created_vehicles[player] = nil
    end
end

-- Commands
addCommandHandler("marker", function(player, _, ...)
    local args = { ... }
    if #args > 0 then
        local markerType = args[1]
        local markerValue = tonumber(args[2])
        
        if markerType and markers.available_types[markerType] then
            if markerValue then
                local x, y, z = getElementPosition(player)
                local marker = createMarker(x, y, z - 1, "cylinder", 1.2, 255, 0, 0, 100)
                setElementParent(marker, markers.event_element)
                setMarkerAssets(marker, markerType, markerValue)
            else
                print("* O ID precisa ser válido.")
            end
        else
            print("* O tipo não é válido.")
        end
    else
        print("* Comando: /marker <tipo> <id referente ao tipo>")
    end
end)

-- MTA Events
addEventHandler("onMarkerHit", markers.event_element, function(hitElement, matchingDimension)
    if getElementType(hitElement) == "player" and matchingDimension then
        local data = markers.elements[source]
        if data then
            local x, y, z = getElementPosition(hitElement)
            if data.type == "carro" then
                destroyVehicle(hitElement)
                markers.created_vehicles[hitElement] = createVehicle(data.id, x, y, z)
            elseif data.type == "skin" then
                setElementModel(hitElement, data.id)
            elseif data.type == "arma" then
                giveWeapon(hitElement, data.id, 9999, true)
            end
        end
    end
end)

addEventHandler("onPlayerQuit", root, function()
    destroyVehicle(source)
end)

 

Recomendo que você salve os dados em um banco de dados, pois dessa forma atual que fiz, assim que o resource é reiniciado, eles irão sumir. O comando pra testar é: /marker <tipo> <id referente ao tipo>.

Por exemplo: /marker carro 411, /marker skin 1, /marker arma 30

Edited by androksi
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...