Jump to content

[help] SetControlState


Recommended Posts

I used this function to reverse the car's controls

function drugSteer() 
    left=false 
    right=false 
    up=false 
    down=false 
    
    local keys = getBoundKeys ('vehicle_left') 
    if keys then 
        tmpLeft = false 
        for keyName, state in pairs(keys) do 
            if (getKeyState(keyName)) then 
                tmpLeft=true 
            end 
        end 
        if tmpLeft then 
            left=true 
            right=false 
        end 
    end 
  
    local keys = getBoundKeys ('vehicle_right') 
    if keys then 
        tmpRight = false 
        for keyName, state in pairs(keys) do 
            if (getKeyState(keyName)) then 
                tmpRight=true 
            end 
        end 
        if tmpRight then 
            left=false 
            right=true 
        end 
    end 
  
    if (left) then 
        setControlState('vehicle_left', false) 
        setControlState('vehicle_right', true) 
    elseif (right) then 
        setControlState('vehicle_right', false) 
        setControlState('vehicle_left', true) 
    else 
        setControlState('vehicle_right', false) 
        setControlState('vehicle_left', false) 
    end 
      
    local keys = getBoundKeys ('accelerate') 
    if keys then 
        tmpUp = false 
        for keyName, state in pairs(keys) do 
            if (getKeyState(keyName)) then 
                tmpUp=true 
            end 
        end 
        if tmpUp then 
            down=false 
            up=true 
        end 
    end 
    
    local keys = getBoundKeys ('brake_reverse') 
    if keys then 
        tmpDown = false 
        for keyName, state in pairs(keys) do 
            if (getKeyState(keyName)) then 
                tmpDown=true 
            end 
        end 
        if tmpDown then 
            down=true 
            up=false 
        end 
    end 
    
    if (up) then 
        setControlState('accelerate', true) 
        setControlState('brake_reverse', true) 
    elseif (down) then 
        setControlState('brake_reverse', true) 
        setControlState('accelerate', false) 
    else 
        setControlState('brake_reverse', false) 
        setControlState('accelerate', true) 
    end 
end 
  
function startDrug()  
    dxDrawRectangle ( 3.8, 3.8, 2.02, 2, tocolor ( 0, 0, 0, 150 ) ) 
end 
addEventHandler("onClientRender", getRootElement(), startDrug) 

Now I want to reverse for the player What do I change?

function drugSteer() 
    left=false 
    right=false 
    up=false 
    down=false 
    
    local keys = getBoundKeys ('player_left') 
    if keys then 
        tmpLeft = false 
        for keyName, state in pairs(keys) do 
            if (getKeyState(keyName)) then 
                tmpLeft=true 
            end 
        end 
        if tmpLeft then 
            left=true 
            right=false 
        end 
    end 
  
    local keys = getBoundKeys ('player_right') 
    if keys then 
        tmpRight = false 
        for keyName, state in pairs(keys) do 
            if (getKeyState(keyName)) then 
                tmpRight=true 
            end 
        end 
        if tmpRight then 
            left=false 
            right=true 
        end 
    end 
  
    if (left) then 
        setControlState('player_left', false) 
        setControlState('player_right', true) 
    elseif (right) then 
        setControlState('player_right', false) 
        setControlState('player_left', true) 
    else 
        setControlState('player_right', false) 
        setControlState('player_left', false) 
    end 

What did this wrong?

Link to comment

Hey man, not sure if this will work, I wrote this while at my dads work.

All you have to do is use the setDrugEffectsEnabled(true) command to enable wonky running and driving, and use setDrugEffectsEnabled(false) to disable this effect.

function setDrugEffectsEnabled(enabled) 
    if enabled == true then 
        originalVehLeft = getBoundKeys('vehicle_left')[1] 
        originalVehRight = getBoundKeys('vehicle_right')[1] 
        originalLeft = getBoundKeys('left')[1] 
        originalRight = getBoundKeys('right')[1] 
         
        toggleControl('vehicle_left', false) 
        toggleControl('vehicle_right', false) 
        toggleControl('left', false) 
        toggleControl('right', false) 
        bindKey(originalVehLeft, 'both', drugEffects, 'vehRight') 
        bindKey(originalVehRight, 'both', drugEffects, 'vehLeft') 
        bindKey(originalLeft, 'both', drugEffects, 'right') 
        bindKey(originalRight, 'both', drugEffects, 'left') 
    else 
        unbindKey(originalVehLeft, 'both', drugEffects) 
        unbindKey(originalVehRight, 'both', drugEffects) 
        unbindKey(originalLeft, 'both', drugEffects) 
        unbindKey(originalRight, 'both', drugEffects) 
    end 
end 
  
function drugEffects(key, keyState, direction) 
    if keyState == 'up' then keyState = true else keyState = false end 
    if direction == 'vehLeft' then 
        setControlState('vehicle_right', keyState) 
    elseif direction == 'vehRight' then 
        setControlState('vehicle_left', keyState) 
    elseif direction == 'left' then 
        setControlState('right', keyState) 
    elseif direction == 'right' then 
        setControlState('left', keyState) 
    end 
end 

Link to comment

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