Jump to content

get random car


Thivenin

Recommended Posts

Posted

hai all, today I have a problem here the script and I explain more

allowedVehicles = { [602] = true, [545] = true, [469] = true, [517] = true, [401] = true, [410] = true, [518] = true, [600] = true, [527] = true, [436] = true, [589] = true, [580] = true, [419] = true, [439] = true, [533] = true, [549] = true, [526] = true, [491] = true, [474] = true, [445] = true, [604] = true, [507] = true, [585] = true, [587] = true, [466] = true, [492] = true, [546] = true, [551] = true, [516] = true, [467] = true, [426] = true, [547] = true, [405] = true, [409] = true, [550] = true, [566] = true, [540] = true, [421] = true, [529] = true, [485] = true, [552] = true, [431] = true, [438] = true, [437] = true, [574] = true, [420] = true, [525] = true, [408] = true, [416] = true, [433] = true, [427] = true, [490] = true, [528] = true, [407] = true, [544] = true, [523] = true, [470] = true, [598] = true, [596] = true, [597] = true, [599] = true, [601] = true, [428] = true, [499] = true, [609] = true, [498] = true, [524] = true, [532] = true, [578] = true, [486] = true, [406] = true, [573] = true, [455] = true, [588] = true, [403] = true, [514] = true, [423] = true, [414] = true, [443] = true, [515] = true, [531] = true, [456] = true, [459] = true, [422] = true, [482] = true, [605] = true, [530] = true, [418] = true, [572] = true, [582] = true, [413] = true, [440] = true, [543] = true, [583] = true, [478] = true, [554] = true, [536] = true, [575] = true, [534] = true, [567] = true, [535] = true, [576] = true, [412] = true, [402] = true, [542] = true, [603] = true, [475] = true, [568] = true, [424] = true, [504] = true, [457] = true, [483] = true, [508] = true, [571] = true, [500] = true, [444] = true, [556] = true, [557] = true, [471] = true, [495] = true, [539] = true, [429] = true, [411] = true, [559] = true, [541] = true, [415] = true, [561] = true, [480] = true, [560] = true, [562] = true, [506] = true, [565] = true, [451] = true, [434] = true, [558] = true, [494] = true, [555] = true, [502] = true, [477] = true, [503] = true, [579] = true, [400] = true, [404] = true, [489] = true, [505] = true, [479] = true, [442] = true, [458] = true } 
DDthirdMarker = createMarker ( -1353, 915, 1038, "cylinder", 5, 250, 0, 250, 255 ) 
setElementInterior ( DDthirdMarker, 15 ) 
  
function DDthirdTP ( markerHit, matchingDimension ) 
    if ( markerHit == DDthirdMarker ) then 
        player = source 
        pick = math.random(#allowedVehicles) 
            setElementPosition ( player, -1944, 938, 1037 ) 
    end 
end 
addEventHandler ( "onPlayerMarkerHit", getRootElement(), DDthirdTP ) 

bad argument #1 to 'random'

at this line

pick = math.random(#allowedVehicles) 

that should : when I take the marker, I get a random car at the position "setElementPosition ( player, -1944, 938, 1037 )"

idk what to do :/ help me pls

Posted
allowedVehicles = { 602, 545, 469, .... } 
  
DDthirdMarker = createMarker ( -1353, 915, 1038, "cylinder", 5, 250, 0, 250, 255 ) 
setElementInterior ( DDthirdMarker, 15 ) 
  
function DDthirdTP ( markerHit, matchingDimension ) 
    if ( markerHit == DDthirdMarker ) then 
        pick = math.random(#allowedVehicles) 
        spawnveh = spawnVehicle ( -1359, 935, 1038 ) 
            setElementPosition ( source, -1359, 935, 1038 ) 
    end 
end 
addEventHandler ( "onPlayerMarkerHit", getRootElement(), DDthirdTP ) 

Posted
allowedVehicles = { 602, 545, 469, .... } 
  
DDthirdMarker = createMarker ( -1353, 915, 1038, "cylinder", 5, 250, 0, 250, 255 ) 
setElementInterior ( DDthirdMarker, 15 ) 
  
function DDthirdTP ( markerHit, matchingDimension ) 
    if ( markerHit == DDthirdMarker ) then 
        local pick = math.random ( #allowedVehicles ) 
        local spawnveh = createVehicle ( allowedVehicles [ pick ], -1359, 935, 1038 ) 
        warpPedIntoVehicle ( source, spawnveh ) 
    end 
end 
addEventHandler ( "onPlayerMarkerHit", getRootElement(), DDthirdTP ) 

Posted
allowedVehicles = { 602, 545, 469, .... } 
  
DDthirdMarker = createMarker ( -1353, 915, 1038, "cylinder", 5, 250, 0, 250, 255 ) 
setElementInterior ( DDthirdMarker, 15 ) 
  
function DDthirdTP ( markerHit, matchingDimension ) 
    if ( markerHit == DDthirdMarker ) then 
        local pick = math.random ( #allowedVehicles ) 
        local spawnveh = createVehicle ( allowedVehicles [ pick ], -1359, 935, 1038 ) 
        setElementInterior ( spawnveh, 15 ) 
        warpPedIntoVehicle ( source, spawnveh ) 
    end 
end 
addEventHandler ( "onPlayerMarkerHit", getRootElement(), DDthirdTP ) 

Posted
Can I know why we should use this # in this pick = math.random(#allowedVehicles)

# is used to get the length of the table.

math.random will give you a number between 1 and the length of the table or the number you specify.

Also math.random can be used in three ways.

You can find more info about it here: http://lua-users.org/wiki/MathLibraryTutorial

Posted

as it's on the same screen I post it here

I have a problem I explain after the pub, jk :

DDseventhMarker = createMarker ( -1410, 998, 1025, "corona", 2, 250, 0, 250, 255 ) 
setElementInterior ( DDseventhMarker, 15 ) 
  
function DDrepair ( markerHit, matchingDimension ) 
    if ( markerHit == DDseventhMarker ) then 
    setMarkerColor ( DDseventhMarker, 250, 0, 250, 0 ) 
    thePlayer = source 
        fixVehicle ( thePlayer ) 
    timer = setTimer ( DDrepair, 30000, 1 ) 
    end 
end 
killTimer ( timer ) 
addEventHandler ( "onPlayerMarkerHit", getRootElement(), DDrepair ) 

I want to make this marker as a repair and when we take it, it's taking 30 scd for get it back... but I have an error that I can't understand : Bad argument @ 'killTimer' [Expected lua-timer at argument 1, got nil]

Posted

If you mean you want to remove the timer just remove the line 9 and 12

Try this.

DDseventhMarker = createMarker ( -1410, 998, 1025, "corona", 2, 250, 0, 250, 255 ) 
setElementInterior ( DDseventhMarker, 15 )[/center] 
function DDrepair ( markerHit, matchingDimension ) 
    if ( markerHit == DDseventhMarker ) then 
    setMarkerColor ( DDseventhMarker, 250, 0, 250, 0 ) 
    thePlayer = source 
        fixVehicle ( thePlayer ) 
    end 
end 
addEventHandler ( "onPlayerMarkerHit", getRootElement(), DDrepair ) 

Posted
DDseventhMarker = createMarker(-1410, 998, 1025, "corona", 2, 250, 0, 250, 255) 
setElementInterior(DDseventhMarker, 15) 
  
hitTimer = {} 
  
function DDrepair(markerHit) 
    if (markerHit == DDseventhMarker) then 
        local vehicle = getPedOccupiedVehicle(source) 
        if vehicle and not isTimer(hitTimer[source]) then 
            hitTimer[source] = setTimer(function() end, 30000, 1) 
            setMarkerColor(DDseventhMarker, 250, 0, 250, 0) 
            fixVehicle(vehicle) 
        end 
    end 
end 
addEventHandler("onPlayerMarkerHit", root, DDrepair) 

Posted (edited)
DDseventhMarker = createMarker ( -1410, 998, 1025, "corona", 2, 250, 0, 250, 255 ) 
setElementInterior ( DDseventhMarker, 15 ) 
  
function DDrepair ( hitElement ) 
    if ( hitElement == localPlayer ) and ( isPedInVehicle ( hitElement ) ) then 
        if ( timer ) then return end 
        local vehicle = getPedOccupiedVehicle ( hitElement ) 
        setMarkerColor ( DDseventhMarker, 250, 0, 250, 0 ) 
        fixVehicle ( vehicle ) 
        timer = setTimer ( function ( ) setMarkerColor ( DDseventhMarker, 250, 0, 250, 0 ) timer = nil  end, 30000, 1 ) 
    end 
end 
addEventHandler ( "onClientMarkerHit", DDseventhMarker, DDrepair, false ) 

I made it clientside so it won't affect on server side, which means the timer would be set to the localplayer, and the marker color will be changed after the timer execution, hope that helped.

edit:

Me and TAPL have posted at the same time, but you choose whatever you like :P

Edited by Guest
Posted
fixVehicle client side won't affect server side vehicle, if i'm not wrong.

I'm sure it works for both sides, haven't tried it, but Thivenin will try it anyways.

Posted
DDseventhMarker = createMarker ( -1410, 998, 1025, "corona", 2, 250, 0, 250, 255 ) 
setElementInterior ( DDseventhMarker, 15 ) 
  
function DDrepair ( markerHit ) 
    if ( markerHit == DDseventhMarker ) then 
        local vehicle = getPedOccupiedVehicle ( source ) 
        if ( vehicle and not isTimer ( hitTimer ) ) then 
            setMarkerColor ( DDseventhMarker, 250, 0, 250, 0 ) 
            fixVehicle ( vehicle ) 
            hitTimer = setTimer ( setMarkerColor, 30000, 1, DDseventhMarker, 250, 0, 250, 255 ) 
        end 
    end 
end 
addEventHandler ( "onPlayerMarkerHit", root, DDrepair ) 

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