Killer... Posted February 4, 2015 Share Posted February 4, 2015 Hello everyone. I need some help whit this script. Because i want to do when you say /ruta and you're in a vehicle to start the job, showing to you the checkpoints. Server Part local vehicles = get( "vehicles" )-- load the civilian vehicles that'll automatically trigger the delivery mission if being entered local max_earnings = tonumber( get( "earnings" ) ) or 125 local delay = tonumber( get( "delay" ) ) or 25 -- local p = { } local function advanceRoute( player, earnings ) if p[ player ] and p[ player ].route and p[ player ].checkpoint then local cp = p[ player ].checkpoint + 1 local c = p[ player ].route[ cp ] local n = p[ player ].route[ cp + 1 ] if c then if p[ player ].route[ p[ player ].checkpoint ] then if p[ player ].route[ p[ player ].checkpoint ].stop and earnings and earnings > 0 then exports.players:giveMoney( player, earnings ) end if p[ player ].route[ p[ player ].checkpoint ].hint then triggerClientEvent( player, "gui:hint", player, "Ve a buscar provisiones a la fábrica abandonada.", p[ player ].route[ p[ player ].checkpoint ].hint ) end end if not n then -- last checkpoint triggerClientEvent( player, getResourceName( resource ) .. ":set", player, c.x, c.y, c.z, c.stop and true ) else triggerClientEvent( player, getResourceName( resource ) .. ":set", player, c.x, c.y, c.z, c.stop and true, n.x, n.y, n.z, n.stop and true ) end else if earnings then exports.players:giveMoney( player, earnings * 3 ) end triggerClientEvent( player, getResourceName( resource ) .. ":set", player ) p[ player ] = nil return false end p[ player ].checkpoint = cp return true end end local function newRoute( player ) p[ player ].vehicleOnResourceStart = nil local route = math.random( #routes ) p[ player ].route = routes[ route ] p[ player ].checkpoint = 0 advanceRoute( player ) end addEventHandler( "onVehicleEnter", root, function ruta( player, seat ) if seat == 0 and isPedInVehicle ( player ) then if not p[ player ] then p[ player ] = { } end if not p[ player ].route then newRoute( player ) else triggerClientEvent( player, getResourceName( resource ) .. ":show", player ) end end end ) addCommandHandler ("ruta", ruta) -- addEventHandler( "onResourceStart", resourceRoot, function( ) if not routes or routes == 0 then cancelEvent( ) return end -- setElementData( resourceRoot, "delay", delay ) -- for key, value in ipairs( getElementsByType( "player" ) ) do local vehicle = getPedOccupiedVehicle( value ) if vehicle and getPedOccupiedVehicleSeat( value ) == 0 then p[ value ] = { vehicleOnResourceStart = vehicle } end end setTimer( function( ) for key, value in pairs( p ) do p[ key ].vehicleOnResourceStart = nil end end, 10000, 1 ) end ) addEvent( getResourceName( resource ) .. ":ready", true ) addEventHandler( getResourceName( resource ) .. ":ready", root, function( ) if source == client then if p[ source ] and getPedOccupiedVehicle( source ) == p[ source ].vehicleOnResourceStart and getPedOccupiedVehicleSeat( source ) == 0 then newRoute( source ) end end end ) -- addEvent( getResourceName( resource ) .. ":complete", true ) addEventHandler( getResourceName( resource ) .. ":complete", root, function( ) if source == client then local vehicle = getPedOccupiedVehicle( source ) if p[ source ] and p[ source ].route and getPedOccupiedVehicleSeat( source ) == 0 then -- distance check if not p[ source ].route[ p[ source ].checkpoint ].stop or getDistanceBetweenPoints2D( p[ source ].route[ p[ source ].checkpoint ].x, p[ source ].route[ p[ source ].checkpoint ].y, getElementPosition( vehicle ) ) < 5 then local health = math.min( 1000, getElementHealth( vehicle ) ) if health > 350 then -- get a checkpoint advanceRoute( source, earnings ) end end end end end ) addEventHandler( "onCharacterLogout", root, function( ) if p[ source ] and p[ source ].route then triggerClientEvent( source, getResourceName( resource ) .. ":set", source ) end p[ source ] = nil end ) addEventHandler( "onPlayerQuit", root, function( ) p[ source ] = nil end ) -- -- function introduce( player ) triggerClientEvent( player, getResourceName( resource ) .. ":introduce", player ) end Client Part local localPlayer = getLocalPlayer( ) local position = nil local marker = nil local blip = nil local blip2 = nil local wait = false local screenX, screenY = guiGetScreenSize( ) function drawWaitingText( ) -- check if we still need to wait local text = "Espera..." local vehicle = getPedOccupiedVehicle( localPlayer ) if vehicle then if wait and wait ~= 0 then local diff = wait - getTickCount( ) if diff >= 0 then text = ( "Espera %.1f segundos para subir los paquetes al vehiculo!" ):format( diff / 1000 ) else triggerServerEvent( getResourceName( resource ) .. ":complete", localPlayer ) wait = 0 end -- draw the text dxDrawText( text, 4, 4, screenX, screenY, tocolor( 0, 0, 0, 255 ), 1, "pricedown", "center", "center" ) dxDrawText( text, 0, 0, screenX, screenY, tocolor( 255, 255, 255, 255 ), 1, "pricedown", "center", "center" ) end end -- local function hide( ) if isElement( blip ) then destroyElement( blip ) end blip = nil if isElement( blip2 ) then destroyElement( blip2 ) end blip2 = nil if isElement( marker ) then destroyElement( marker ) end marker = nil if wait then wait = false removeEventHandler( "onClientRender", root, drawWaitingText ) end end local function show( ) hide( ) if position then -- in lack of a more detailed close-location (aka we use the entrance), use large markers marker = createMarker( position.x, position.y, position.z, "checkpoint", 3, position.stop and 0 or 255, 255, 0, 63 ) if marker then blip = createBlipAttachedTo( marker, 0, 2, position.stop and 0 or 255, 255, 0, 255 ) end if position.nx and position.ny and position.nz then blip2 = createBlip( position.nx, position.ny, position.nz, 0, 1, position.nstop and 0 or 255, 255, 0, 255 ) end end end addEvent( getResourceName( resource ) .. ":show", true ) addEventHandler( getResourceName( resource ) .. ":show", localPlayer, show ) addEvent( getResourceName( resource ) .. ":set", true ) addEventHandler( getResourceName( resource ) .. ":set", localPlayer, function( x, y, z, stop, nx, ny, nz, nstop ) if x and y and z then position = { x = x, y = y, z = z, stop = stop, nx = nx, ny = ny, nz = nz, nstop = nstop } show( ) else position = nil hide( ) end end ) addEventHandler( "onClientPlayerVehicleExit", localPlayer, hide ) addEventHandler( "onClientResourceStart", resourceRoot, function( ) triggerServerEvent( getResourceName( resource ) .. ":ready", localPlayer ) end ) addEventHandler( "onClientMarkerHit", resourceRoot, function( element, matching ) if matching and element == localPlayer then if position.stop then if not wait then wait = getTickCount( ) + getElementData( resourceRoot, "delay" ) * 1000 addEventHandler( "onClientRender", root, drawWaitingText ) end else triggerServerEvent( getResourceName( resource ) .. ":complete", localPlayer ) end end end ) addEventHandler( "onClientMarkerLeave", resourceRoot, function( element, matching ) if matching and element == localPlayer then wait = false removeEventHandler( "onClientRender", root, drawWaitingText ) exports.gui:hint( "Cargador", "Para recibir paga, ve a por paquetes en la vieja fábrica. Se recomienda no ir solo!", 3 ) end end ) Please help me, i do this because i'm doing an Zombie Roleplay, trying to combine MTA Paradise whit a ZombieGamemode. And for now it's going good. If you want to participate in this Spanish project, contact me. 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