Jump to content

GUI help


Recommended Posts

I have a car spawner script but i dont know how to make it for team FBI

Server;

local vehicle = {} 
  
function isVehicleSpawned(vehicle) 
    return getElementData(vehicle, "jobvehicle") 
end 
  
function doesPlayerHaveVehicleSpawned(player) 
    if (isElement(vehicle[player])) then  
        return true 
    else 
        return false 
    end 
end 
  
function destroyVehicle(vehicle, player) 
    if (isElement(vehicle[player])) then 
        destroyElement(vehicle[player]) 
    end 
end 
  
function createTheJobVehicles() 
    for index, table in ipairs(vehicles) do 
        marker = createMarker(839.95318603516, -2065, 12, "cylinder", 1.4, 11, 11, 11, 255) 
        setElementData(marker, "vehiclemarker-role", table.Roles) 
        setElementData(marker, "vehiclemarker-vehicles", table.vehicles) 
        setElementData(marker, "vehiclemarker-rotation", table.rotation) 
        vehicle[marker] = table.Roles 
        local position = table.x..", "..table.y..", "..table.z..", "..", "..table.rotation 
        local color = table.vehR..", "..table.vehG..", "..table.vehB..", " 
        setElementData(marker, "vehiclemarker-position", position) 
        setElementData(marker, "vehiclemarker-color", color) 
        addEventHandler("onMarkerHit", marker, onPlayerVehicleMarkerHit) 
    end 
end 
addEventHandler("onResourceStart", resourceRoot, createTheJobVehicles) 
  
function onPlayerVehicleMarkerHit(player) 
    local role = getElementData(source, "vehiclemarker-role") 
    local vehicles = getElementData(source, "vehiclemarker-vehicles") 
    local rotation = getElementData(source, "vehiclemarker-rotation") 
    if (getElementType(player) == "player") then 
        if (getElementData(player, dataToFindPlayersJob) == role or role == "ALL") then 
            if (isPedInVehicle(player)) then return end 
            local position = getElementData(source, "vehiclemarker-position") 
            local color = getElementData(source, "vehiclemarker-color") 
            local posX, posY, posZ, rotation = unpack(split(position, ",")) 
            local r, g, b = unpack(split(color, ",")) 
            triggerClientEvent(player, "jobvehicles.showVehicleGUI", root, vehicles, rotation, posX, posY, posZ, rotation, r, g, b) 
        else 
            outputChatBox("This marker is reserved for '"..role.."'", player, 250, 0, 0) 
        end 
    end 
end 
  
  
function onPlayerSpawnVehicle(vid, vx, vy, vz, rotation, r, g, b) 
    if (isElement(vehicle[client])) then  
        destroyElement(vehicle[client]) 
    end 
    vehicle[client] = createVehicle(vid, vx, vy, vz) 
    setElementData(vehicle[client], "jobvehicle", true) 
    warpPedIntoVehicle(client, vehicle[client]) 
    setElementRotation(vehicle[client], 0, 0, rotation) 
    outputDebugString(getPlayerName(client).. " has spawned a '"..getVehicleNameFromModel(vid)) 
    outputServerLog(getPlayerName(client).. " has spawned a '"..getVehicleNameFromModel(vid).."'") 
    if (r) then 
        setVehicleColor(vehicle[client], r, g, b) 
    end 
end 
addEvent("jobvehicles.onPlayerSpawnVehicle", true) 
addEventHandler("jobvehicles.onPlayerSpawnVehicle", root, onPlayerSpawnVehicle) 
  
function destroyPlayerVehicle() 
    if (isElement(vehicle[source])) then 
        destroyElement(vehicle[source]) 
    end 
end 
addEventHandler("onPlayerWasted", root, destroyPlayerVehicle) 
addEventHandler("onPlayerLogout", root, destroyPlayerVehicle) 
addEventHandler("onPlayerQuit", root, destroyPlayerVehicle) 
  
function destroyMyOwnVehicle(player) 
    if (isElement(vehicle[player])) then  
        outputChatBox("You have succesfully destroyed your "..getVehicleNameFromModel(getElementModel(vehicle[player])).."!", player, 0, 255, 10) 
        destroyElement(vehicle[player]) 
    elseif (not isElement(vehicle[player])) then 
        outputChatBox("You currently do not have a job vehicle spawned to destroy!", player, 250, 0, 0) 
    end 
end 
addCommandHandler("destroyv", destroyMyOwnVehicle) 
  
  
function destroyVehicleOnExplode() 
    if (getElementData(source, "jobvehicle")) then 
        destroyElement(source) 
    end 
end 
addEventHandler("onVehicleExplode", root, destroyVehicleOnExplode) 
  
function onAdminDestroyJobVehicle(admin, cmd, target) 
    local accountname = getAccountName(getPlayerAccount(admin)) 
    if (hasObjectPermissionTo("user."..accountname, "function.kickPlayer") and target) then 
        local player = getPlayerFromName(target) 
        if (isElement(vehicle[player]) and player) then 
            outputChatBox("You have destroyed "..getPlayerName(player).."' s "..getVehicleNameFromModel(getElementModel(vehicle[player])).." (jobvehicle)", admin, 0, 255, 10) 
            outputChatBox(getPlayerName(admin).." has destroyed your "..getVehicleNameFromModel(getElementModel(vehicle[player])).." (jobvehicle)", player, 255, 10, 0) 
            destroyElement(vehicle[player]) 
        elseif (not isElement(vehicle[player]) and player) then 
            outputChatBox(getPlayerName(player).. " does not currently have any job vehicle spawned.", admin, 255, 10, 0)[lua]local screenWidth, screenHeight = guiGetScreenSize() 
local v_table = {} 
  
  
function createVehicleChooserGUI() 
    if (isElement(wndVehicle)) then 
        if (guiGetVisible(wndVehicle)) then return end 
    end 
    windowWidth, windowHeight = 321, 338 
    windowX, windowY = (screenWidth / 2) - (windowWidth / 2), (screenHeight / 2) - (windowHeight / 2) 
    wndVehicle = guiCreateWindow(windowX, windowY, windowWidth, windowHeight, "Select Vehicle",false) 
    guiSetAlpha(wndVehicle, 1) 
    gridVehicle = guiCreateGridList(9,23,303,249,false,wndVehicle) 
    vehicleColumn = guiGridListAddColumn(gridVehicle,"Vehicle",0.-- s8) -->
    vehicleSpawn = guiCreateButton(9,282,96,37,"Select",false,wndVehicle) 
    vehicleClose = guiCreateButton(216,282,96,37,"Exit",false,wndVehicle) 
    addEventHandler("onClientGUIClick", vehicleSpawn, onPlayerSelectVehicle) 
    addEventHandler("onClientGUIClick", vehicleClose, onPlayerExitVehicleGUI) 
end 
  
function showVehicleGUI(vehicles, rotation, posX, posY, posZ, rotation, r, g, b) 
    createVehicleChooserGUI() 
    v_table[1] = posX 
    v_table[2] = posY 
    v_table[3] = posZ 
    v_table[4] = rotation 
    v_table[5] = r 
    v_table[6] = g 
    v_table[7] = b 
    showCursor(true) 
    guiGridListClear(gridVehicle) 
    for index, vehicles in ipairs(vehicles) do 
        vehicleRow = guiGridListAddRow(gridVehicle) 
        guiGridListSetItemText(gridVehicle, vehicleRow, vehicleColumn, getVehicleNameFromModel(vehicles), false, true) 
    end 
end 
addEvent("jobvehicles.showVehicleGUI", true) 
addEventHandler("jobvehicles.showVehicleGUI", root, showVehicleGUI) 
  
function onPlayerExitVehicleGUI(button, state) 
    if (button ~= "left" or state ~= "up") then return end 
    guiSetVisible(wndVehicle, false) 
    showCursor(false) 
end 
  
function onPlayerSelectVehicle(button, state) 
    if (button ~= "left" or state ~= "up") then return end 
    if (guiGridListGetSelectedItem(gridVehicle) == -1) then return end 
    local vrow = guiGridListGetSelectedItem(gridVehicle) 
    local vname = guiGridListGetItemText(gridVehicle, vrow, vehicleColumn) 
    local vid = getVehicleModelFromName(vname) 
    guiSetVisible(wndVehicle, false) 
    showCursor(false) 
    triggerServerEvent("jobvehicles.onPlayerSpawnVehicle", root, vid, v_table[1], v_table[2], v_table[3], v_table[4], v_table[5], v_table[6], v_table[7]) 
end 

Client;

local screenWidth, screenHeight = guiGetScreenSize() 
local v_table = {} 
  
  
function createVehicleChooserGUI() 
    if (isElement(wndVehicle)) then 
        if (guiGetVisible(wndVehicle)) then return end 
    end 
    windowWidth, windowHeight = 321, 338 
    windowX, windowY = (screenWidth / 2) - (windowWidth / 2), (screenHeight / 2) - (windowHeight / 2) 
    wndVehicle = guiCreateWindow(windowX, windowY, windowWidth, windowHeight, "Select Vehicle",false) 
    guiSetAlpha(wndVehicle, 1) 
    gridVehicle = guiCreateGridList(9,23,303,249,false,wndVehicle) 
    vehicleColumn = guiGridListAddColumn(gridVehicle,"Vehicle",0.-- s8) -->
    vehicleSpawn = guiCreateButton(9,282,96,37,"Select",false,wndVehicle) 
    vehicleClose = guiCreateButton(216,282,96,37,"Exit",false,wndVehicle) 
    addEventHandler("onClientGUIClick", vehicleSpawn, onPlayerSelectVehicle) 
    addEventHandler("onClientGUIClick", vehicleClose, onPlayerExitVehicleGUI) 
end 
  
function showVehicleGUI(vehicles, rotation, posX, posY, posZ, rotation, r, g, b) 
    createVehicleChooserGUI() 
    v_table[1] = posX 
    v_table[2] = posY 
    v_table[3] = posZ 
    v_table[4] = rotation 
    v_table[5] = r 
    v_table[6] = g 
    v_table[7] = b 
    showCursor(true) 
    guiGridListClear(gridVehicle) 
    for index, vehicles in ipairs(vehicles) do 
        vehicleRow = guiGridListAddRow(gridVehicle) 
        guiGridListSetItemText(gridVehicle, vehicleRow, vehicleColumn, getVehicleNameFromModel(vehicles), false, true) 
    end 
end 
addEvent("jobvehicles.showVehicleGUI", true) 
addEventHandler("jobvehicles.showVehicleGUI", root, showVehicleGUI) 
  
function onPlayerExitVehicleGUI(button, state) 
    if (button ~= "left" or state ~= "up") then return end 
    guiSetVisible(wndVehicle, false) 
    showCursor(false) 
end 
  
function onPlayerSelectVehicle(button, state) 
    if (button ~= "left" or state ~= "up") then return end 
    if (guiGridListGetSelectedItem(gridVehicle) == -1) then return end 
    local vrow = guiGridListGetSelectedItem(gridVehicle) 
    local vname = guiGridListGetItemText(gridVehicle, vrow, vehicleColumn) 
    local vid = getVehicleModelFromName(vname) 
    guiSetVisible(wndVehicle, false) 
    showCursor(false) 
    triggerServerEvent("jobvehicles.onPlayerSpawnVehicle", root, vid, v_table[1], v_table[2], v_table[3], v_table[4], v_table[5], v_table[6], v_table[7]) 
end 

Link to comment

server

local vehicle = {} 
  
function isVehicleSpawned(vehicle) 
    return getElementData(vehicle, "jobvehicle") 
end 
  
function doesPlayerHaveVehicleSpawned(player) 
    if (isElement(vehicle[player])) then  
        return true 
    else 
        return false 
    end 
end 
  
function destroyVehicle(vehicle, player) 
    if (isElement(vehicle[player])) then 
        destroyElement(vehicle[player]) 
    end 
end 
  
function createTheJobVehicles() 
    for index, table in ipairs(vehicles) do 
        marker = createMarker(839.95318603516, -2065, 12, "cylinder", 1.4, 11, 11, 11, 255) 
        setElementData(marker, "vehiclemarker-role", table.Roles) 
        setElementData(marker, "vehiclemarker-vehicles", table.vehicles) 
        setElementData(marker, "vehiclemarker-rotation", table.rotation) 
        vehicle[marker] = table.Roles 
        local position = table.x..", "..table.y..", "..table.z..", "..", "..table.rotation 
        local color = table.vehR..", "..table.vehG..", "..table.vehB..", " 
        setElementData(marker, "vehiclemarker-position", position) 
        setElementData(marker, "vehiclemarker-color", color) 
        addEventHandler("onMarkerHit", marker, onPlayerVehicleMarkerHit) 
    end 
end 
addEventHandler("onResourceStart", resourceRoot, createTheJobVehicles) 
  
function onPlayerVehicleMarkerHit(player) 
    local role = getElementData(source, "vehiclemarker-role") 
    local vehicles = getElementData(source, "vehiclemarker-vehicles") 
    local rotation = getElementData(source, "vehiclemarker-rotation") 
    if (getElementType(player) == "player") then 
        if ( getPlayerTeam(player, getTeamName) == team or team == "SWAT") then 
            if (isPedInVehicle(player)) then return end 
            local position = getElementData(source, "vehiclemarker-position") 
            local color = getElementData(source, "vehiclemarker-color") 
            local posX, posY, posZ, rotation = unpack(split(position, ",")) 
            local r, g, b = unpack(split(color, ",")) 
            triggerClientEvent(player, "jobvehicles.showVehicleGUI", root, vehicles, rotation, posX, posY, posZ, rotation, r, g, b) 
        else 
            outputChatBox("This marker is reserved for '"..role.."'", player, 250, 0, 0) 
        end 
    end 
end 
  
  
function onPlayerSpawnVehicle(vid, vx, vy, vz, rotation, r, g, b) 
    if (isElement(vehicle[client])) then  
        destroyElement(vehicle[client]) 
    end 
    vehicle[client] = createVehicle(vid, vx, vy, vz) 
    setElementData(vehicle[client], "jobvehicle", true) 
    warpPedIntoVehicle(client, vehicle[client]) 
    setElementRotation(vehicle[client], 0, 0, rotation) 
    outputDebugString(getPlayerName(client).. " has spawned a '"..getVehicleNameFromModel(vid)) 
    outputServerLog(getPlayerName(client).. " has spawned a '"..getVehicleNameFromModel(vid).."'") 
    if (r) then 
        setVehicleColor(vehicle[client], r, g, b) 
    end 
end 
addEvent("jobvehicles.onPlayerSpawnVehicle", true) 
addEventHandler("jobvehicles.onPlayerSpawnVehicle", root, onPlayerSpawnVehicle) 
  
function destroyPlayerVehicle() 
    if (isElement(vehicle[source])) then 
        destroyElement(vehicle[source]) 
    end 
end 
addEventHandler("onPlayerWasted", root, destroyPlayerVehicle) 
addEventHandler("onPlayerLogout", root, destroyPlayerVehicle) 
addEventHandler("onPlayerQuit", root, destroyPlayerVehicle) 
  
function destroyMyOwnVehicle(player) 
    if (isElement(vehicle[player])) then  
        outputChatBox("You have succesfully destroyed your "..getVehicleNameFromModel(getElementModel(vehicle[player])).."!", player, 0, 255, 10) 
        destroyElement(vehicle[player]) 
    elseif (not isElement(vehicle[player])) then 
        outputChatBox("You currently do not have a job vehicle spawned to destroy!", player, 250, 0, 0) 
    end 
end 
addCommandHandler("destroyv", destroyMyOwnVehicle) 
  
  
function destroyVehicleOnExplode() 
    if (getElementData(source, "jobvehicle")) then 
        destroyElement(source) 
    end 
end 
addEventHandler("onVehicleExplode", root, destroyVehicleOnExplode) 
  
function onAdminDestroyJobVehicle(admin, cmd, target) 
    local accountname = getAccountName(getPlayerAccount(admin)) 
    if (hasObjectPermissionTo("user."..accountname, "function.kickPlayer") and target) then 
        local player = getPlayerFromName(target) 
        if (isElement(vehicle[player]) and player) then 
            outputChatBox("You have destroyed "..getPlayerName(player).."' s "..getVehicleNameFromModel(getElementModel(vehicle[player])).." (jobvehicle)", admin, 0, 255, 10) 
            outputChatBox(getPlayerName(admin).." has destroyed your "..getVehicleNameFromModel(getElementModel(vehicle[player])).." (jobvehicle)", player, 255, 10, 0) 
            destroyElement(vehicle[player]) 
        elseif (not isElement(vehicle[player]) and player) then 
            outputChatBox(getPlayerName(player).. " does not currently have any job vehicle spawned.", admin, 255, 10, 0) 
        else 
            outputChatBox("The player do not exist!", admin, 250, 0, 0) 
        end 
    end 
end 
addCommandHandler("dv", onAdminDestroyJobVehicle) 

Client

local screenWidth, screenHeight = guiGetScreenSize() 
local v_table = {} 
  
  
function createVehicleChooserGUI() 
    if (isElement(wndVehicle)) then 
        if (guiGetVisible(wndVehicle)) then return end 
    end 
    windowWidth, windowHeight = 321, 338 
    windowX, windowY = (screenWidth / 2) - (windowWidth / 2), (screenHeight / 2) - (windowHeight / 2) 
    wndVehicle = guiCreateWindow(windowX, windowY, windowWidth, windowHeight, "Select Vehicle",false) 
    guiSetAlpha(wndVehicle, 1) 
    gridVehicle = guiCreateGridList(9,23,303,249,false,wndVehicle) 
    vehicleColumn = guiGridListAddColumn(gridVehicle,"Vehicle",0.-- s8) -->
    vehicleSpawn = guiCreateButton(9,282,96,37,"Select",false,wndVehicle) 
    vehicleClose = guiCreateButton(216,282,96,37,"Exit",false,wndVehicle) 
    addEventHandler("onClientGUIClick", vehicleSpawn, onPlayerSelectVehicle) 
    addEventHandler("onClientGUIClick", vehicleClose, onPlayerExitVehicleGUI) 
end 
  
function showVehicleGUI(vehicles, rotation, posX, posY, posZ, rotation, r, g, b) 
    createVehicleChooserGUI() 
    v_table[1] = posX 
    v_table[2] = posY 
    v_table[3] = posZ 
    v_table[4] = rotation 
    v_table[5] = r 
    v_table[6] = g 
    v_table[7] = b 
    showCursor(true) 
    guiGridListClear(gridVehicle) 
    for index, vehicles in ipairs(vehicles) do 
        vehicleRow = guiGridListAddRow(gridVehicle) 
        guiGridListSetItemText(gridVehicle, vehicleRow, vehicleColumn, getVehicleNameFromModel(vehicles), false, true) 
    end 
end 
addEvent("jobvehicles.showVehicleGUI", true) 
addEventHandler("jobvehicles.showVehicleGUI", root, showVehicleGUI) 
  
function onPlayerExitVehicleGUI(button, state) 
    if (button ~= "left" or state ~= "up") then return end 
    guiSetVisible(wndVehicle, false) 
    showCursor(false) 
end 
  
function onPlayerSelectVehicle(button, state) 
    if (button ~= "left" or state ~= "up") then return end 
    if (guiGridListGetSelectedItem(gridVehicle) == -1) then return end 
    local vrow = guiGridListGetSelectedItem(gridVehicle) 
    local vname = guiGridListGetItemText(gridVehicle, vrow, vehicleColumn) 
    local vid = getVehicleModelFromName(vname) 
    guiSetVisible(wndVehicle, false) 
    showCursor(false) 
    triggerServerEvent("jobvehicles.onPlayerSpawnVehicle", root, vid, v_table[1], v_table[2], v_table[3], v_table[4], v_table[5], v_table[6], v_table[7]) 
end 

Link to comment

Do you mean something like this

dataToFindPlayersJob = "team" 
  
vehicles =  
    { 
         
        {Roles = "Example", vehicles = {1337, 1338}, x = 1337, y = -1337, z = 36.5, rotation = 25, r = 250, g = 250, b = 250, vehR = 0, vehG = 0, vehB = 0},  
    } 
  

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...