Jump to content

تعديل كود


Dr.Xen

Recommended Posts

السلام عليكم ورحمة الله وبركاته

اانا عندي ماركر اختيار مواتر بس لو غيرت الإحداثيات ما تطلع اللوحة

ذذا ما غيرت الاحداثيات

Clinet

local groupName = '[MFA]' 
local sx, sy = guiGetScreenSize() 
  
mainWindow = guiCreateWindow((sx-438)/2, (sy-487)/2, 438, 487, "[MFA] Vehicles", false) 
guiWindowSetSizable(mainWindow, false) 
guiSetAlpha(mainWindow, 1.00) 
guiSetVisible(mainWindow, false) 
  
mainTab = guiCreateTabPanel(0.02, 0.04, 0.96, 0.90, true, mainWindow) 
  
local vehicles = { 
    cars = { 
        tab = guiCreateTab("Cars", mainTab), 
        list = { 
            {"Cheetah", 415}, 
            {"Bullet", 541}, 
            {"Infernus", 411}, 
            {"Sultan", 560}, 
            {"Turismo", 451}, 
            {"Comet", 480}, 
            {"Huntley", 579}, 
            {"Flash", 565}, 
            {"Bandito", 568} 
        } 
    }, 
    bikes = { 
        tab = guiCreateTab("Bikes", mainTab), 
        list = { 
            {"BF-400", 581}, 
            {"FCR-900", 521}, 
            {"NRG-511", 522}, 
            {"PCJ-600", 461}, 
            {"Sanchez", 468} 
        } 
    }, 
    planes = { 
        tab = guiCreateTab("Planes", mainTab), 
        list = { 
            {"Sparrow", 469}, 
            {"Maverick", 487} 
        } 
    } 
} 
vehicles.cars.gridlist = guiCreateGridList(0.05, 0.02, 0.89, 0.95, true, vehicles.cars.tab) 
table.insert(vehicles.cars, guiGridListAddColumn(vehicles.cars.gridlist, "Cars", 0.9)) 
vehicles.bikes.gridlist = guiCreateGridList(0.05, 0.02, 0.89, 0.95, true, vehicles.bikes.tab) 
table.insert(vehicles.bikes, guiGridListAddColumn(vehicles.bikes.gridlist, "Bikes", 0.9)) 
vehicles.planes.gridlist = guiCreateGridList(0.05, 0.02, 0.89, 0.95, true, vehicles.planes.tab) 
table.insert(vehicles.planes, guiGridListAddColumn(vehicles.planes.gridlist, "Planes", 0.9)) 
  
notice = guiCreateLabel(0.02, 0.94, 0.96, 0.03, "Press (Enter) to select your vehicle", true, mainWindow) 
guiLabelSetColor(notice, 255, 255, 0) 
guiLabelSetHorizontalAlign(notice, "center", false) 
guiLabelSetVerticalAlign(notice, "center") 
  
for i,v in pairs(vehicles) do 
    for _,k in ipairs(v.list) do 
        local row = guiGridListAddRow(v.gridlist) 
        guiGridListSetItemText(v.gridlist, row, v[1], k[1], false, false) 
    end 
end 
  
local vehiclesMarker = createColSphere(3162,870.5,6.8, 1) 
createMarker(3162,870.5,6.8,"cylinder",2,0,255,0,255) 
  
addEventHandler("onClientColShapeHit", vehiclesMarker, 
    function(hitElement) 
        if hitElement == localPlayer and getElementData(hitElement, "Group") == groupName and not isPedInVehicle(hitElement) then 
            guiSetVisible(mainWindow, true) 
            showCursor(true) 
            bindKey("enter", "down", selectVehicle) 
        end 
    end,false 
) 
  
addEventHandler("onClientColShapeLeave", vehiclesMarker, 
    function(leaveElement) 
        if leaveElement == localPlayer and getElementData(leaveElement, "Group") == groupName and not isPedInVehicle(leaveElement) then 
            guiSetVisible(mainWindow, false) 
            showCursor(false) 
            unbindKey("enter", "down", selectVehicle) 
        end 
    end, false 
) 
  
function selectVehicle() 
    for i,v in pairs(vehicles) do 
        local tab = v.tab 
        if guiGetSelectedTab(mainTab) == tab then 
            local gridlist = v.gridlist 
            if guiGridListGetSelectedItem(gridlist) ~= -1 then 
                local row = guiGridListGetSelectedItem(gridlist) 
                local vehName = guiGridListGetItemText(gridlist, row, v[1]) 
                for _,k in ipairs(v.list) do 
                    if k[1] == vehName then 
                        if i == "planes" then 
                            triggerServerEvent("spawningVehicle", localPlayer, k[2], true) 
                        else 
                            triggerServerEvent("spawningVehicle", localPlayer, k[2], false) 
                        end 
                        unbindKey("enter", "down", selectVehicle) 
                        break 
                    end 
                end 
                guiSetVisible(mainWindow, false) 
                showCursor(false) 
                break 
            end 
        end 
    end 
end 

Server:

addEvent("spawningVehicle", true) 
local groupName = '[MFA]' 
local activeVehicles = {} 
local playersVehicles = {} 
local occupiedVehicles = {} 
local activeTimers = {} 
local Intruders = {} 
  
local function addVehicleToDestroyList(vehicleNumber) 
    activeTimers[vehicleNumber] = setTimer( 
        function(vehicleNumber) 
            destroyElement(activeVehicles[vehicleNumber]) 
            activeVehicles[vehicleNumber] = nil 
            activeTimers[vehicleNumber] = nil 
            for i,v in pairs(playersVehicles) do 
                if v == vehicleNumber then 
                    playersVehicles[i] = nil 
                    break 
                end 
            end 
        end, 30000, 1, vehicleNumber 
    ) 
end 
  
local function removeVehicleFromDestroyList(vehicleNumber) 
    if isTimer(activeTimers[vehicleNumber]) then 
        killTimer(activeTimers[vehicleNumber]) 
        activeTimers[vehicleNumber] = nil 
    end 
end 
addEventHandler("spawningVehicle", root, 
    function(model, planes) 
local poo = { 
                  {3201,907,19}, 
                  {3201,927,19} 
                  } 
        local x, y, z = 0, 0, 0 
        local rx, ry, rz = 0, 0, 0 
        if planes then 
         x, y, z = unpack(poo[math.random(#poo)]) 
            rx, ry, rz = 0.3275146484375, 359.78839111328, 271.46984863281 
        else 
            x, y, z = 3089.21973,846.85303,7.67837 
            rx, ry, rz = 359.54382324219, 359.99975585938, 3.48193359375 
        end 
        if playersVehicles[client] then  
            destroyElement(activeVehicles[playersVehicles[client]]) 
            removeVehicleFromDestroyList(playersVehicles[client]) 
            playersVehicles[client] = nil 
        end 
        local vehicle = #activeVehicles + 1 
        activeVehicles[vehicle] = createVehicle(model, x, y, z, rx, ry, rz) 
        setVehicleColor(activeVehicles[vehicle], 255, 255, 255) 
        warpPedIntoVehicle(client, activeVehicles[vehicle]) 
        addVehicleUpgrade(activeVehicles[vehicle], 1010) 
        playersVehicles[client] = vehicle 
        occupiedVehicles[vehicle] = nil 
    end 
) 
  
addEventHandler("onVehicleExit", root, 
    function(player, seat) 
        if seat == 0 then 
            if playersVehicles[player] then 
                addVehicleToDestroyList(playersVehicles[player]) 
                occupiedVehicles[playersVehicles[player]] = nil 
            else 
                for i,v in pairs(activeVehicles) do 
                    if v == source then 
                        addVehicleToDestroyList(i) 
                        occupiedVehicles[i] = nil 
                    end 
                end 
            end 
        end 
    end 
) 
  
addEventHandler("onVehicleEnter", root, 
    function(player, seat) 
        if seat == 0 then 
            if playersVehicles[player] then 
                removeVehicleFromDestroyList(playersVehicles[player]) 
                occupiedVehicles[playersVehicles[player]] = true 
            else 
                for i,v in pairs(activeVehicles) do 
                    if v == source then 
                        removeVehicleFromDestroyList(i) 
                        occupiedVehicles[i] = true 
                        break 
                    end 
                end 
            end 
        end 
    end 
) 
  
addEventHandler("onVehicleStartEnter", root, 
    function(player, seat) 
        for i,v in pairs(activeVehicles) do 
            if v == source then 
                if getElementData(player, "Group") ~= groupName then 
                    outputChatBox("This vehicle is only for "..groupName.." group!", player, 255, 0, 0) 
                    cancelEvent() 
                else 
                    if seat == 0 and occupiedVehicles[i] then 
                        outputChatBox("You cannot take this vehicle as someone in it already!", player, 255, 0, 0) 
                        cancelEvent() 
                    end 
                end 
                break 
            end 
        end 
    end 
) 
  
addEventHandler("onVehicleExplode", root, 
    function() 
        for i,v in pairs(activeVehicles) do 
            if v == source then 
                removeVehicleFromDestroyList(i) 
                activeVehicles[i] = nil 
                occupiedVehicles[i] = nil 
                setTimer(destroyElement, 2000, 1, source) 
                for k,s in pairs(playersVehicles) do 
                    if i == s then 
                        playersVehicles[k] = nil 
                        break 
                    end 
                end 
                break 
            end 
        end 
    end 
) 

ممكن تصححوا الكود !

بعد التعديل:

كلينت

local groupName = '[MFA]' 
local sx, sy = guiGetScreenSize() 
  
mainWindow = guiCreateWindow((sx-438)/2, (sy-487)/2, 438, 487, "[MFA] Vehicles", false) 
guiWindowSetSizable(mainWindow, false) 
guiSetAlpha(mainWindow, 1.00) 
guiSetVisible(mainWindow, false) 
  
mainTab = guiCreateTabPanel(0.02, 0.04, 0.96, 0.90, true, mainWindow) 
  
local vehicles = { 
    cars = { 
        tab = guiCreateTab("Cars", mainTab), 
        list = { 
            {"Cheetah", 415}, 
            {"Bullet", 541}, 
            {"Infernus", 411}, 
            {"Sultan", 560}, 
            {"Turismo", 451}, 
            {"Comet", 480}, 
            {"Huntley", 579}, 
            {"Flash", 565}, 
            {"Bandito", 568} 
        } 
    }, 
    bikes = { 
        tab = guiCreateTab("Bikes", mainTab), 
        list = { 
            {"BF-400", 581}, 
            {"FCR-900", 521}, 
            {"NRG-511", 522}, 
            {"PCJ-600", 461}, 
            {"Sanchez", 468} 
        } 
    }, 
    planes = { 
        tab = guiCreateTab("Planes", mainTab), 
        list = { 
            {"Sparrow", 469}, 
            {"Maverick", 487} 
        } 
    } 
} 
vehicles.cars.gridlist = guiCreateGridList(0.05, 0.02, 0.89, 0.95, true, vehicles.cars.tab) 
table.insert(vehicles.cars, guiGridListAddColumn(vehicles.cars.gridlist, "Cars", 0.9)) 
vehicles.bikes.gridlist = guiCreateGridList(0.05, 0.02, 0.89, 0.95, true, vehicles.bikes.tab) 
table.insert(vehicles.bikes, guiGridListAddColumn(vehicles.bikes.gridlist, "Bikes", 0.9)) 
vehicles.planes.gridlist = guiCreateGridList(0.05, 0.02, 0.89, 0.95, true, vehicles.planes.tab) 
table.insert(vehicles.planes, guiGridListAddColumn(vehicles.planes.gridlist, "Planes", 0.9)) 
  
notice = guiCreateLabel(0.02, 0.94, 0.96, 0.03, "Press (Enter) to select your vehicle", true, mainWindow) 
guiLabelSetColor(notice, 255, 255, 0) 
guiLabelSetHorizontalAlign(notice, "center", false) 
guiLabelSetVerticalAlign(notice, "center") 
  
for i,v in pairs(vehicles) do 
    for _,k in ipairs(v.list) do 
        local row = guiGridListAddRow(v.gridlist) 
        guiGridListSetItemText(v.gridlist, row, v[1], k[1], false, false) 
    end 
end 
  
local vehiclesMarker = createColSphere(1648.7998046875,577.3994140625,10.199999809265, 3) 
createMarker(1648.7998046875,577.3994140625,10.199999809265,"cylinder",3,0,255,0,255) 
  
addEventHandler("onClientColShapeHit", vehiclesMarker, 
    function(hitElement) 
        if hitElement == localPlayer and getElementData(hitElement, "Group") == groupName and not isPedInVehicle(hitElement) then 
            guiSetVisible(mainWindow, true) 
            showCursor(true) 
            bindKey("enter", "down", selectVehicle) 
        end 
    end,false 
) 
  
addEventHandler("onClientColShapeLeave", vehiclesMarker, 
    function(leaveElement) 
        if leaveElement == localPlayer and getElementData(leaveElement, "Group") == groupName and not isPedInVehicle(leaveElement) then 
            guiSetVisible(mainWindow, false) 
            showCursor(false) 
            unbindKey("enter", "down", selectVehicle) 
        end 
    end, false 
) 
  
function selectVehicle() 
    for i,v in pairs(vehicles) do 
        local tab = v.tab 
        if guiGetSelectedTab(mainTab) == tab then 
            local gridlist = v.gridlist 
            if guiGridListGetSelectedItem(gridlist) ~= -1 then 
                local row = guiGridListGetSelectedItem(gridlist) 
                local vehName = guiGridListGetItemText(gridlist, row, v[1]) 
                for _,k in ipairs(v.list) do 
                    if k[1] == vehName then 
                        if i == "planes" then 
                            triggerServerEvent("spawningVehicle", localPlayer, k[2], true) 
                        else 
                            triggerServerEvent("spawningVehicle", localPlayer, k[2], false) 
                        end 
                        unbindKey("enter", "down", selectVehicle) 
                        break 
                    end 
                end 
                guiSetVisible(mainWindow, false) 
                showCursor(false) 
                break 
            end 
        end 
    end 
end 

سيرفر:

addEvent("spawningVehicle", true) 
local groupName = 'anAs' 
local activeVehicles = {} 
local playersVehicles = {} 
local occupiedVehicles = {} 
local activeTimers = {} 
local Intruders = {} 
  
local function addVehicleToDestroyList(vehicleNumber) 
    activeTimers[vehicleNumber] = setTimer( 
        function(vehicleNumber) 
            destroyElement(activeVehicles[vehicleNumber]) 
            activeVehicles[vehicleNumber] = nil 
            activeTimers[vehicleNumber] = nil 
            for i,v in pairs(playersVehicles) do 
                if v == vehicleNumber then 
                    playersVehicles[i] = nil 
                    break 
                end 
            end 
        end, 30000, 1, vehicleNumber 
    ) 
end 
  
local function removeVehicleFromDestroyList(vehicleNumber) 
    if isTimer(activeTimers[vehicleNumber]) then 
        killTimer(activeTimers[vehicleNumber]) 
        activeTimers[vehicleNumber] = nil 
    end 
end 
addEventHandler("spawningVehicle", root, 
    function(model, planes) 
local poo = { 
                  {1645.25256,578.22870,11.35537}, 
                  {1645.25256,578.22870,11.35537} 
                  } 
        local x, y, z = 0, 0, 0 
        local rx, ry, rz = 0, 0, 0 
        if planes then 
         x, y, z = unpack(poo[math.random(#poo)]) 
            rx, ry, rz = 1645.25256,578.22870,11.35537 
        else 
            x, y, z = 1645.25256,578.22870,11.35537 
            rx, ry, rz = 1645.25256,578.22870,11.35537 
        end 
        if playersVehicles[client] then  
            destroyElement(activeVehicles[playersVehicles[client]]) 
            removeVehicleFromDestroyList(playersVehicles[client]) 
            playersVehicles[client] = nil 
        end 
        local vehicle = #activeVehicles + 1 
        activeVehicles[vehicle] = createVehicle(model, x, y, z, rx, ry, rz) 
        setVehicleColor(activeVehicles[vehicle], 255, 255, 255) 
        warpPedIntoVehicle(client, activeVehicles[vehicle]) 
        addVehicleUpgrade(activeVehicles[vehicle], 1010) 
        playersVehicles[client] = vehicle 
        occupiedVehicles[vehicle] = nil 
    end 
) 
  
addEventHandler("onVehicleExit", root, 
    function(player, seat) 
        if seat == 0 then 
            if playersVehicles[player] then 
                addVehicleToDestroyList(playersVehicles[player]) 
                occupiedVehicles[playersVehicles[player]] = nil 
            else 
                for i,v in pairs(activeVehicles) do 
                    if v == source then 
                        addVehicleToDestroyList(i) 
                        occupiedVehicles[i] = nil 
                    end 
                end 
            end 
        end 
    end 
) 
  
addEventHandler("onVehicleEnter", root, 
    function(player, seat) 
        if seat == 0 then 
            if playersVehicles[player] then 
                removeVehicleFromDestroyList(playersVehicles[player]) 
                occupiedVehicles[playersVehicles[player]] = true 
            else 
                for i,v in pairs(activeVehicles) do 
                    if v == source then 
                        removeVehicleFromDestroyList(i) 
                        occupiedVehicles[i] = true 
                        break 
                    end 
                end 
            end 
        end 
    end 
) 
  
addEventHandler("onVehicleStartEnter", root, 
    function(player, seat) 
        for i,v in pairs(activeVehicles) do 
            if v == source then 
                if getElementData(player, "Group") ~= groupName then 
                    outputChatBox("This vehicle is only for "..groupName.." group!", player, 255, 0, 0) 
                    cancelEvent() 
                else 
                    if seat == 0 and occupiedVehicles[i] then 
                        outputChatBox("You cannot take this vehicle as someone in it already!", player, 255, 0, 0) 
                        cancelEvent() 
                    end 
                end 
                break 
            end 
        end 
    end 
) 
  
addEventHandler("onVehicleExplode", root, 
    function() 
        for i,v in pairs(activeVehicles) do 
            if v == source then 
                removeVehicleFromDestroyList(i) 
                activeVehicles[i] = nil 
                occupiedVehicles[i] = nil 
                setTimer(destroyElement, 2000, 1, source) 
                for k,s in pairs(playersVehicles) do 
                    if i == s then 
                        playersVehicles[k] = nil 
                        break 
                    end 
                end 
                break 
            end 
        end 
    end 
) 

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