Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///gta 4 ped car follower mod
- CPeds = {
- followers = {},
- enemies = {}
- }
- addEvent ( "addMissionPed", true )
- addEventHandler ( "addMissionPed", getRootElement(), function ( type, player )
- if ( type == "f" ) then
- CPeds.followers[source] = player
- elseif ( type == "e" ) then
- CPeds.enemies[source] = player
- end
- end )
- addEventHandler ( "onClientElementDestroy", getResourceRootElement ( getThisResource() ), function ()
- if ( CPeds.followers[source] ) then
- CPeds.followers[source] = nil
- end
- if ( CPeds.enemies[source] ) then
- CPeds.enemies[source] = nil
- end
- end )
- addEventHandler ( "onClientRender", getRootElement(), function ()
- for ped, player in pairs ( CPeds.followers ) do
- if ( isElementStreamedIn ( ped ) and not getPedOccupiedVehicle ( ped ) ) then
- local x, y, z = getElementPosition ( player )
- local px, py, pz = getElementPosition ( ped )
- local rot = math.deg ( math.atan2 ( ( x - px ), ( y - py ) ) ) % 360
- local dist = getDistanceBetweenPoints3D ( x, y, z, px, py, pz )
- setPedCameraRotation ( ped, rot )
- dxDrawText ( tostring ( rot ), 1000, 400 )
- local free = processLineOfSight ( x, y, z, px, py, pz )
- if ( free and dist < 20 ) then
- if ( dist < 2 ) then
- setPedControlState ( ped, "forwards", false )
- else
- setPedControlState ( ped, "forwards", true )
- if ( dist < 6 ) then
- if ( isPedDucked ( ped ) ~= isPedDucked ( player ) ) then
- setPedControlState ( ped, "crouch", false )
- setPedControlState ( ped, "crouch", true )
- return
- end
- setPedControlState ( ped, "sprint", false )
- setPedControlState ( ped, "walk", true )
- elseif ( dist < 15 ) then
- setPedControlState ( ped, "sprint", false )
- setPedControlState ( ped, "walk", false )
- else
- setPedControlState ( ped, "sprint", true )
- setPedControlState ( ped, "walk", false )
- }
- }
- }
- }
- }
- )
Advertisement
Add Comment
Please, Sign In to add comment