Jump to content

Problem


sckatchof

Recommended Posts

Hello all ,

Why this code does not work for the entry of the Bank ?

bankMarker = createMarker ( 1654.1, -1654.76, 21.51, "cylinder", 2, 255, 255, 255, 255 ) 
outBankMarker = createMarker ( 389.82, 173.71, 1008.38, "cylinder", 2, 255, 255, 255, 255 ) 
  
    function goIntoBank(hitElement, matchingDimension) 
    if getElementType( hitElement ) == "player" and not getPedOccupiedVehicle( player ) then 
    setPedFrozen( hitElement, true ) 
    setElementDimension ( hitElement, 1 ) 
    setElementInterior ( hitElement, 3, 386.59, 173.84, 1008.38 ) 
    setPedFrozen( hitElement, false ) 
    end 
end 
addEventHandler( "onMarkerHit", bankMarker, goIntoBank ) 
    
    function goOutOfBank(hitElement, matchingDimension) 
    if getElementType( hitElement ) == "player" and not getPedOccupiedVehicle( player ) then 
    setPedFrozen( hitElement, true ) 
    setElementDimension ( hitElement, 0 ) 
    setElementInterior ( hitElement, 0, 1654.496, -1661.855, 22.51 ) 
    setPedFrozen( hitElement, false ) 
    end 
end 
addEventHandler( "onMarkerHit", outBankMarker, goOutOfBank ) 
    
    function setDim() 
    if ( getElementDimension ( outBankMarker ) == 0 ) then 
    setElementDimension (outBankMarker , 1 )   
    end 
end 
addEventHandler( "onResourceStart", getResourceRootElement(getThisResource()), setDim ) 

Link to comment
1. you got error on line 34 at dxText !

the script what you post have only 29 line ..... post the full code or the right debug error

local localPlayer = getLocalPlayer() 
local driver = false
local shooting = false
local helpText,helpAnimation
lastSlot = 0
settings = {}
 
 
--This function simply sets up the driveby upon vehicle entry
local function setupDriveby( player, seat
    --If his seat is 0, store the fact that he's a driver
    if seat == 0 then
        driver = true
    else
        driver = false
    end
    --By default, we set the player's equiped weapon to nothing.
    setPedWeaponSlot( localPlayer, 0 )
    if settings.autoEquip then
        toggleDriveby()
    end
end
addEventHandler( "onClientPlayerVehicleEnter", localPlayer, setupDriveby )
 
--Tell the server the clientside script was downloaded and started
addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),
    function()
        bindKey ( "mouse2", "down", "Toggle Driveby", "" )
        bindKey ( "e", "down", "Next driveby weapon", "1" )
        bindKey ( "q", "down", "Previous driveby weapon", "-1" )
        toggleControl ( "vehicle_next_weapon",false )
        toggleControl ( "vehicle_previous_weapon",false )
        triggerServerEvent ( "driveby_clientScriptLoaded", localPlayer )
        helpText = dxText:create("",0.5,0.85)
        helpText:scale(1)
        helpText:type("stroke",1)
    end
)
 
addEventHandler("onClientResourceStop",getResourceRootElement(getThisResource()),
    function()
        toggleControl ( "vehicle_next_weapon",true )
        toggleControl ( "vehicle_previous_weapon",true )
    end
)
 
--Get the settings details from the server, and act appropriately according to them
addEvent ( "doSendDriveBySettings", true )
addEventHandler("doSendDriveBySettings",localPlayer,
    function(newSettings)
        settings = newSettings
        --We change the blocked vehicles into an indexed table that's easier to check
        local newTable = {}
        for key,vehicleID in ipairs(settings.blockedVehicles) do
            newTable[vehicleID] = true
        end
        settings.blockedVehicles = newTable
    end
)
 
--This function handles the driveby toggling key.
function toggleDriveby()
    --If he's not in a vehicle dont bother
    if not isPedInVehicle( localPlayer ) then return end
    --If its a blocked vehicle dont allow it
    local vehicleID = getElementModel ( getPedOccupiedVehicle ( localPlayer ) )
    if settings.blockedVehicles[vehicleID] then return end
    --Has he got a weapon equiped?
    local equipedWeapon = getPedWeaponSlot( localPlayer )
    if equipedWeapon == 0 then
        --Decide whether he is a driver or passenger
        if ( driver ) then weaponsTable = settings.driver
        else weaponsTable = settings.passenger end
        --We need to get the switchTo weapon by finding any valid IDs
        local switchTo
        local switchToWeapon
        local lastSlotAmmo = getPedTotalAmmo ( localPlayer, lastSlot )
        if not lastSlotAmmo or lastSlotAmmo == 0 or getSlotFromWeapon(getPedWeapon (localPlayer,lastSlot)) == 0 then
            for key,weaponID in ipairs(weaponsTable) do
                local slot = getSlotFromWeapon ( weaponID )
                local weapon = getPedWeapon ( localPlayer, slot )
                if weapon == 1 then weapon = 0 end --If its a brass knuckle, set it to a fist to avoid confusion
                --if the weapon the player has is valid
                if weapon == weaponID then
                    --If the ammo isn't 0
                    if getPedTotalAmmo ( localPlayer, slot ) ~= 0 then
                        --If no switchTo slot was defined, or the slot was 4 (SMG slot takes priority)
                        if not switchTo or slot == 4 then
                            switchTo = slot
                            switchToWeapon = weaponID
                        end
                    end
                end
            end
        else
            switchTo = lastSlot
            switchToWeapon = getPedWeapon ( localPlayer, lastSlot )
        end
        --If a valid weapon was not found, dont set anything.
        if not switchTo then return end
        setPedDoingGangDriveby ( localPlayer, true )
        setPedWeaponSlot( localPlayer, switchTo )
        --Setup our driveby limiter
        limitDrivebySpeed ( switchToWeapon )
        --Disable look left/right keys, they seem to become accelerate/decelerate (carried over from PS2 version)
        toggleControl ( "vehicle_look_left",false )
        toggleControl ( "vehicle_look_right",false )
        toggleControl ( "vehicle_secondary_fire",false )
        toggleTurningKeys(vehicleID,false)
        addEventHandler ( "onClientPlayerVehicleExit",localPlayer,removeKeyToggles )
        local prevw,nextw = next(getBoundKeys ( "Previous driveby weapon" )),next(getBoundKeys ( "Next driveby weapon" ))
        if prevw and nextw then
            if animation then Animation:remove() end
            helpText:text( "Press '"..prevw.."' or '"..nextw.."' to change weapon" )
            fadeInHelp()
            setTimer ( fadeOutHelp, 10000, 1 )
        end
    else
        --If so, unequip it
        setPedDoingGangDriveby ( localPlayer, false )
        setPedWeaponSlot( localPlayer, 0 )
        limitDrivebySpeed ( switchToWeapon )
        toggleControl ( "vehicle_look_left",true )
        toggleControl ( "vehicle_look_right",true )
        toggleControl ( "vehicle_secondary_fire",true )
        toggleTurningKeys(vehicleID,true)
        fadeOutHelp()
        removeEventHandler ( "onClientPlayerVehicleExit",localPlayer,removeKeyToggles )
    end
end
addCommandHandler ( "Toggle Driveby", toggleDriveby )
 
function removeKeyToggles(vehicle)
    toggleControl ( "vehicle_look_left",true )
    toggleControl ( "vehicle_look_right",true )
    toggleControl ( "vehicle_secondary_fire",true )
    toggleTurningKeys(getElementModel(vehicle),true)
    fadeOutHelp()
    removeEventHandler ( "onClientPlayerVehicleExit",localPlayer,removeKeyToggles )
end
 
 
--This function handles the driveby switch weapon key
function switchDrivebyWeapon(key,progress)
    progress = tonumber(progress)
    if not progress then return end
    --If the fire button is being pressed dont switch
    if shooting then return end
    --If he's not in a vehicle dont bother
    if not isPedInVehicle( localPlayer ) then return end
    --If he's not in driveby mode dont bother either
    local currentWeapon = getPedWeapon( localPlayer )
    if currentWeapon == 1 then currentWeapon = 0 end --If its a brass knuckle, set it to a fist to avoid confusion
    local currentSlot = getPedWeaponSlot(localPlayer)
    if currentSlot == 0 then return end
    if ( driver ) then weaponsTable = settings.driver
    else weaponsTable = settings.passenger end
    --Compile a list of the player's weapons
    local switchTo
    for key,weaponID in ipairs(weaponsTable) do
        if weaponID == currentWeapon then
            local i = key + progress
            --We keep looping the table until we go back to our original key
            while i ~= key do
                nextWeapon = weaponsTable[i]
                if nextWeapon then
                    local slot = getSlotFromWeapon ( nextWeapon )
                    local weapon = getPedWeapon ( localPlayer, slot )
                    if ( weapon == nextWeapon  ) then
                        switchToWeapon = weapon
                        switchTo = slot
                        break
                    end
                end
                --Go back to the beginning if there is no valid weapons left in the table
                if not weaponsTable[i+progress] then
                    if progress < 0 then
                        i = #weaponsTable
                    else
                        i = 1
                    end
                else
                    i = i + progress
                end
            end
            break
        end
    end
    --If a valid weapon was not found, dont set anything.
    if not switchTo then return end
    lastSlot = switchTo
    setPedWeaponSlot( localPlayer, switchTo )
    limitDrivebySpeed ( switchToWeapon )
end
addCommandHandler ( "Next driveby weapon", switchDrivebyWeapon )
addCommandHandler ( "Previous driveby weapon", switchDrivebyWeapon )
 
--Here lies the stuff that limits shooting speed (so slow weapons dont shoot ridiculously fast)
local limiterTimer
function limitDrivebySpeed ( weaponID )
    local speed = settings.shotdelay[tostring(weaponID)]
    if not speed then
        if not isControlEnabled ( "vehicle_fire" ) then
            toggleControl ( "vehicle_fire", true )
        end
        removeEventHandler("onClientPlayerVehicleExit",localPlayer,unbindFire)
        removeEventHandler("onClientPlayerWasted",localPlayer,unbindFire)
        unbindKey ( "vehicle_fire", "both", limitedKeyPress )
    else
        if isControlEnabled ( "vehicle_fire" ) then
            toggleControl ( "vehicle_fire", false )
            addEventHandler("onClientPlayerVehicleExit",localPlayer,unbindFire)
            addEventHandler("onClientPlayerWasted",localPlayer,unbindFire)
            bindKey ( "vehicle_fire","both",limitedKeyPress,speed)
        end
    end
end
 
function unbindFire()
    unbindKey ( "vehicle_fire", "both", limitedKeyPress )
    if not isControlEnabled ( "vehicle_fire" ) then
            toggleControl ( "vehicle_fire", true )
    end
    removeEventHandler("onClientPlayerVehicleExit",localPlayer,unbindFire)
    removeEventHandler("onClientPlayerWasted",localPlayer,unbindFire)
end
 
local block
function limitedKeyPress (key,keyState,speed)
    if keyState == "down" then
        if block == true then return end
        shooting = true
        pressKey ( "vehicle_fire" )
        block = true
        setTimer ( function() block = false end, speed, 1 )
        limiterTimer = setTimer ( pressKey,speed, 0, "vehicle_fire" )
    else
        shooting = false
        for k,timer in ipairs(getTimers()) do
            if timer == limiterTimer then
                killTimer ( limiterTimer )
            end
        end
    end
end
 
function pressKey ( controlName )
    setControlState ( controlName, true )
    setTimer ( setControlState, 150, 1, controlName, false )
end
 
Link to comment
Your error is on the 34th line of the client side, show us that line/function.
    function() 
        bindKey ( "mouse2", "down", "Toggle Driveby", "" ) 
        bindKey ( "e", "down", "Next driveby weapon", "1" ) 
        bindKey ( "q", "down", "Previous driveby weapon", "-1" ) 
        toggleControl ( "vehicle_next_weapon",false ) 
        toggleControl ( "vehicle_previous_weapon",false ) 
        triggerServerEvent ( "driveby_clientScriptLoaded", localPlayer ) 
        helpText = dxText:create("",0.5,0.85) 
        helpText:scale(1) 
        helpText:type("stroke",1) 
    end 
) 
  
addEventHandler("onClientResourceStop",getResourceRootElement(getThisResource()), 

Link to comment

You're all doing it wrong, what has driveby to do with his script?? because you see the image with a error you think it's the same resource...?

function createMarkers() 
    bankMarker = createMarker ( 1654.1, -1654.76, 21.51, "cylinder", 2, 255, 255, 255, 255 ) 
    outBankMarker = createMarker ( 389.82, 173.71, 1008.38, "cylinder", 2, 255, 255, 255, 255 ) 
    setElementDimension (outBankMarker, 1 ) 
    addEventHandler( "onMarkerHit", bankMarker, goIntoBank ) 
    addEventHandler( "onMarkerHit", outBankMarker, goOutOfBank ) 
end 
addEventHandler( "onResourceStart", resourceRoot, createMarkers ) 
  
function goIntoBank(hitElement, matchingDimension) 
    if (matchingDimension and getElementType( hitElement ) == "player" and not isPedInVehicle(hitElement) ) then 
        setPedFrozen( hitElement, true ) 
        setElementDimension ( hitElement, 1 ) 
        setElementInterior ( hitElement, 3, 386.59, 173.84, 1008.38 ) 
        setPedFrozen( hitElement, false ) 
    end 
end 
    
function goOutOfBank(hitElement, matchingDimension) 
    if (matchingDimension and getElementType( hitElement ) == "player" and not isPedInVehicle(hitElement) ) then 
        setPedFrozen( hitElement, true ) 
        setElementDimension ( hitElement, 0 ) 
        setElementInterior ( hitElement, 0, 1654.496, -1661.855, 22.51 ) 
        setPedFrozen( hitElement, false ) 
    end 
end 

Link to comment
You're all doing it wrong, what has driveby to do with his script?? because you see the image with a error you think it's the same resource...?

No , but i want just Team criminal can Enters to the Marker

  
local Marcklbara = createMarker( 1457.3000488281, -1010.799987793, 27.89999961853, 'arrow', 2, 0, 255, 0, 150 ) 
local Marcklde5el = createMarker( -1894.73, 653.08, -64.42, 'cylinder', 1.5, 255, 0, 0, 150 ) 
  
function Entrer( hitPlayer, matchingDimension ) 
  
    if hasObjectPermissionTo( hitPlayer, 'general.adminpanel', false ) then 
        setElementPosition ( hitPlayer, -1901.87, 653.26, -63.42 ) 
    else     
        outputChatBox ( "You cannot enter. You need to be a criminal.",hitPlayer )                 
  end 
end 
  
addEventHandler( "onMarkerHit", Marcklbara, Entrer ) 
  
  
function Sortie( hitPlayer, matchingDimension ) 
  setElementPosition ( hitPlayer, 1462.2607421875, -1012.4664306641, 26.84375 ) 
end 
  
addEventHandler( "onMarkerHit", Marcklde5el, Sortie ) 

and thnx for help :)

Link to comment
local Marcklbara = createMarker( 1457.3000488281, -1010.799987793, 27.89999961853, 'arrow', 2, 0, 255, 0, 150 ) 
local Marcklde5el = createMarker( -1894.73, 653.08, -64.42, 'cylinder', 1.5, 255, 0, 0, 150 ) 
  
function Entrer( hitPlayer, matchingDimension ) 
    local team = getPlayerTeam(hitPlayer) 
    if (not team) then return end 
    if (getTeamName(team) == "Criminal") then 
        setElementPosition ( hitPlayer, -1901.87, 653.26, -63.42 ) 
    else     
        outputChatBox ( "You cannot enter. You need to be a criminal.",hitPlayer )                
    end 
end 
  
addEventHandler( "onMarkerHit", Marcklbara, Entrer ) 
  
function Sortie( hitPlayer, matchingDimension ) 
    local team = getPlayerTeam(hitPlayer) 
    if (not team) then return end 
    if (getTeamName(team) == "Criminal") then 
        setElementPosition ( hitPlayer, 1462.2607421875, -1012.4664306641, 26.84375 ) 
    end 
end 
addEventHandler( "onMarkerHit", Marcklde5el, Sortie ) 

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