okay.
local sx, sy = guiGetScreenSize ( )
local rsx, rsy = sx / 1280, sy / 1024
local window = guiCreateWindow( ( sx / 2 - ( rsx*354 ) / 2 ), ( sy / 2 - (rsy*400) / 2 ), (rsx*354), (rsy*400), "SACG:RPG Vehicle", false)
local vehList = guiCreateGridList((rsx*9), (rsy*26), (rsx*335), (rsy*315), false, window)
local btnSpawn = guiCreateButton((rsx*9), (rsy*346), (rsx*149), (rsy*43), "Spawn", false, window)
local btnClose = guiCreateButton((rsx*195), (rsy*346), (rsx*149), (rsy*43), "Cancel", false, window)
guiWindowSetSizable(window, false)
guiSetVisible ( window, false )
guiGridListAddColumn(vehid, "id", 0.9)
guiGridListAddColumn(vehList, "Vehicle", 0.9)
local marker = nil
addEvent ( "SACGSpawners:ShowClientSpawner", true )
addEventHandler ( "SACGSpawners:ShowClientSpawner", root, function ( cars, mrker )
if ( wasEventCancelled ( ) ) then
return
end
if ( not guiGetVisible ( window ) ) then
bindKey ( "mouse_wheel_down", "down", spawnClickingFunctions )
showCursor ( true )
guiSetVisible ( window, true )
guiGridListClear ( vehList )
addEventHandler ( 'onClientMarkerLeave', mrker, closeWindow )
marker = mrker
job = getElementData ( marker, "SACGVehicles:JobRestriction" )
guiGridListSetItemText ( vehList, guiGridListAddRow ( vehList ), 1, "Free Vehicles", true, true )
for i, v in ipairs ( cars ) do
local name = getVehicleNameFromModel ( v )
local row = guiGridListAddRow ( vehList )
guiGridListSetItemText ( vehList, row, 1, name, false, false )
guiGridListSetItemData ( vehList, row, 1, v )
end
if ( exports.SACGVIP:isPlayerVIP ( ) ) then
local level = exports.SACGVIP:getVipLevelFromName ( getElementData ( localPlayer, "VIP" ) )
if ( level and level > 0 and VipVehicles [ level ] and #VipVehicles [ level ] > 0 ) then
guiGridListSetItemText ( vehList, guiGridListAddRow ( vehList ), 1, "VIP Vehicles", true, true )
for i, v in pairs ( VipVehicles [ level ] ) do
local name = getVehicleNameFromModel ( v )
local row = guiGridListAddRow ( vehList )
guiGridListSetItemText ( vehList, row, 1, name, false, false )
guiGridListSetItemData ( vehList, row, 1, v )
end
end
end
guiGridListSetSelectedItem ( vehList, 0, 1 )
addEventHandler ( "onClientGUIClick", btnSpawn, spawnClickingFunctions )
addEventHandler ( "onClientGUIClick", btnClose, spawnClickingFunctions )
end
end )
function spawnClickingFunctions ( )
if ( source == btnClose ) then
closeWindow ( localPlayer )
elseif ( source == btnSpawn ) or getKeyState( "num_1" ) == true then
local row, col = guiGridListGetSelectedItem ( vehList )
if ( row == -1 ) then
return exports['SACGMessages']:sendClientMessage ( "Select a vehicle to be spawn.", 255, 255, 0 )
end
addEventHandler( "onClientKey", root, function(button,press)
-- Since mouse_wheel_up and mouse_wheel_down cant return a release, we dont have to check the press.
if button == "mouse_wheel_up" or button == "mouse_wheel_down" then
outputDebugString( button .. " moved." )
return true
end
return false
end )
local id = guiGridListGetItemData ( vehList, row, 1 )
triggerServerEvent ( "SACGSpawners:spawnVehicle", localPlayer, id, marker, true )
closeWindow ( localPlayer )
end
end
function closeWindow ( p )
if ( not p or p == localPlayer ) then
removeEventHandler ( 'onClientMarkerLeave', marker, closeWindow )
marker = nil
guiSetVisible ( window, false )
showCursor ( false )
guiGridListClear ( vehList )
removeEventHandler ( "onClientGUIClick", btnSpawn, spawnClickingFunctions )
removeEventHandler ( "onClientGUIClick", btnClose, spawnClickingFunctions )
unbindKey ( "num_1", "down", spawnClickingFunctions )
end
end
addEvent ( "SACGSpawners:CloseWindow", true )
addEventHandler ( "SACGSpawners:CloseWindow", root, closeWindow )
i try like that but not working