Davision Posted January 6, 2017 Share Posted January 6, 2017 (edited) how i can make the spawner cars with key (like saur:rpg) Help me please spawner_s.lua Quote local spawners = { ['Free'] = { }, ['Job'] = { } } local spawnedVehciles = { } function createFreeSpawner ( x, y, z, rz, sx, sy, sz ) local i = #spawners['Free']+1 local z = z - 1 local sx, sy, sz = sx or x, sy or y, sz or z+1.5 local rz = rz or 0 spawners['Free'] = createMarker ( x, y, z, 'cylinder', 2, 255, 255, 255, 120 ) setElementData ( spawners['Free'], "SpawnCoordinates", { sx, sy, sz, rz } ) setElementData ( spawners['Free'], "SACGVehicles:SpawnVehicleList", JobVehicles['Free'] ) setElementData ( spawners['Free'], "SACGVehicles:JobRestriction", false ) addEventHandler ( "onMarkerHit", spawners['Free'], onSpawnerHit ) return spawners['Free']end function createJobSpawner ( job, x, y, z, colors, rz, sx, sy, sz ) local i = #spawners['Job']+1 local z = z - 1 local sx, sy, sz = sx or x, sy or y, sz or z+1.5 local rz = rz or 0 local r, g, b = unpack ( colors ) spawners['Job'] = createMarker ( x, y, z, 'cylinder', 2, r, g, b, 120 ) setElementData ( spawners['Job'], "SpawnCoordinates", { sx, sy, sz, rz } ) setElementData ( spawners['Job'], "SACGVehicles:SpawnVehicleList", JobVehicles[job] ) setElementData ( spawners['Job'], "SACGVehicles:JobRestriction", tostring ( job ) ) addEventHandler ( "onMarkerHit", spawners['Job'], onSpawnerHit ) return spawners['Job']end function onSpawnerHit ( p ) local job = string.lower ( getElementData ( source, "SACGVehicles:JobRestriction" ) or "false" ) if ( job == 'false' ) then job = false end local pJob = string.lower ( getElementData ( p, "Job" ) or "" ) if ( job ) then if ( pJob ~= job ) then exports['SACGMessages']:sendClientMessage ( "This spawner is for the "..job.." job. You're not in the "..job.." job.", p, 255, 140, 40 ) return end end if ( getElementType ( p ) == 'player' and not isPedInVehicle ( p ) ) then local list = getElementData ( source, "SACGVehicles:SpawnVehicleList" ); triggerClientEvent ( p, 'SACGSpawners:ShowClientSpawner', p, list, source ) triggerEvent ( "SACGSpawners:onPlayerOpenSpawner", source, p ) endend addEvent ( "SACGSpawners:spawnVehicle", true )addEventHandler ( "SACGSpawners:spawnVehicle", root, function ( id, x, y, z, rz, job ) local c = exports['SACGAntiRestart']:createPlayerVehicle ( source, id, x, y, z, rz, true, job )end ) for i, v in pairs ( data ) do if ( i == 'Free' ) then for k, e in ipairs ( v ) do createFreeSpawner ( unpack ( e ) ) end elseif ( i == 'Jobs' ) then for k, e in ipairs ( v ) do createJobSpawner ( unpack ( e ) ) end endend addEvent ( "SACGSpawners:onPlayerOpenSpawner", true ) spawner_c.lua Quote local sx, sy = guiGetScreenSize ( )local rsx, rsy = sx / 1280, sy / 1024local 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 = niladdEvent ( "SACGSpawners:ShowClientSpawner", true )addEventHandler ( "SACGSpawners:ShowClientSpawner", root, function ( cars, mrker ) if ( wasEventCancelled ( ) ) then return end if ( not guiGetVisible ( window ) ) then bindKey ( "num_1", "down", spawnClickingFunctions ) bindKey ( "num_2", "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 ) endend ) 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 function af(button, press) if button == "1" and press == true then triggerServerEvent("bo", resourceRoot) endend local id = guiGridListGetItemData ( vehList, row, 1 ) triggerServerEvent ( "SACGSpawners:spawnVehicle", localPlayer, id, marker, true ) closeWindow ( localPlayer ) endend 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 ) endendaddEvent ( "SACGSpawners:CloseWindow", true )addEventHandler ( "SACGSpawners:CloseWindow", root, closeWindow ) Edited January 6, 2017 by Tanger Link to comment
Davision Posted January 6, 2017 Author Share Posted January 6, 2017 add it in the script Link to comment
Best-Killer Posted January 6, 2017 Share Posted January 6, 2017 try it by your self you will not learn if didn't try it try and post your code then we will help you Link to comment
Davision Posted January 6, 2017 Author Share Posted January 6, 2017 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 Link to comment
Trevor1 Posted January 7, 2017 Share Posted January 7, 2017 (edited) Deleted Edited January 7, 2017 by Trevor1 Link to comment
AfterAll14 Posted January 8, 2017 Share Posted January 8, 2017 I can give you the script, but it is compiled. Is that ok? Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now