sanleygfx Posted October 11, 2019 Posted October 11, 2019 (edited) ---------------------------------------->> -- Grand Theft International (GTI) -- Author: Mitch -- Date: 11 Feb 2015 -- Resource: storeRob_c.Lua -- Version: 1.0 ----------------------------------------->> addEvent("onClientInteriorExit",true) colShapeDerFix = createColCuboid ( 251.714, -81.700, 0.578, 12, 19, 10 ) local theRobbery = false local robCashRegister = false local robberyStarted = false local hasBag = false local cancelRobb = false local intLeave = false local peds = { --{createPed ( 179, 1370.286, -1292.434, 13.549, -90), 0, 0}, --{createPed ( 179, 1370.297, -1286.706, 18.002, -90), 0, 0}, {createPed ( 179, 2402.549, -1986.312, 13.546, 90), 0, 0}, {createPed ( 179, 1316.687, -896.606, 39.578, 360 ), 0, 0 }, {createPed ( 179, 1348.748046875, -1760.7326660156, 13.549824714661, 181.38510131836 ), 0, 0 }, {createPed ( 179, 2411.5866699219, -1505.5615234375, 24.002511978149, 270.54040527344 ), 0, 0 }, --{createPed ( 179, 2324.559, 57.402, 20.866, 90), 0, 0}, --[[ {createPed ( 179, 237.804, -167.235, -3.744, 180), 0, 0}, {createPed ( 179, 2170.868, 931.855, 10.096, 90), 0, 0}, {createPed ( 179, -2093.384, -2470.107, 30.625, 50), 0, 0}, {createPed ( 179, -318.559, 829.981, 14.245, 90), 0, 0}, {createPed ( 179, 2550.509, 2071.741, 10.107, 0), 0, 0}, --{createPed ( 59, -2235.597, 128.584, 1035.414, 0), 0, 6 }, --{createPed ( 59, 497.644, -77.471, 998.765, 0 ), 1, 11 }, --{createPed ( 59, -23.286, -57.334, 1003.547, 0 ), 1, 6 }, --{createPed ( 59, -28.066, -91.640, 1003.547, 0 ), 1, 18 }, --{createPed ( 59, -28.066, -91.640, 1003.547, 0 ), 0, 18 }, --{createPed ( 59, -23.409, -57.324, 1003.547, 0 ), 4, 6 }, --{createPed ( 59, -27.963, -91.640, 1003.547, 0 ), 2, 18 }, --{createPed ( 59, -23.409, -57.324, 1003.547, 0 ), 3, 6 }, {createPed ( 59, -1560.088, -2731.392, 48.748, 325 ), 0, 0 }, --{createPed ( 59, 1834.721, -1837.593, 13.595, 265 ), 0, 0 }, {createPed ( 59, 250.219, -54.828, 1.578, 180 ), 0, 0 }, {createPed ( 59, 2356.241, 68.039, 22.3, 90 ), 0, 0 }, {createPed ( 59, 2446.081, 2076.602, 10.826, 180 ), 0, 0 }, ]]-- } local cashRegister = { --[[ {createObject ( 1514, -2235.574, 129.407, 1035.700, 0, 0, 180 ), 0, 6, 180 }, {createObject ( 1514, 497.646, -76.722, 999.005, 0, 0, 180 ), 1, 11, 180}, {createObject ( 1514, -23.386, -56.597, 1003.706, 0, 0, 180 ), 1, 6, 0 }, {createObject ( 1514, -28.338, -90.706, 1003.706, 0, 0, 180 ), 1, 18, 0 }, {createObject ( 1514, -28.338, -90.706, 1003.706, 0, 0, 180 ), 0, 18, 0 }, {createObject ( 1514, -23.395, -56.484, 1003.706, 0, 0, 180 ), 4, 6, 0 }, {createObject ( 1514, -28.338, -90.706, 1003.706, 0, 0, 180 ), 2, 18, 0 }, {createObject ( 1514, -23.395, -56.484, 1003.706, 0, 0, 180 ), 3, 6, 0 }, ]]-- {createObject ( 1514, 2439.421, 2075.942, 11.061, 0, 0, 0 ), 0, 0, 0 }, {createObject ( 1514, -1559.773, -2730.774, 48.895, 0, 0, 140 ), 0, 0, 0 }, --{createObject ( 1514, 1836.306, -1837.925, 13.741, 0, 0, 90 ), 0, 0, 0 }, {createObject ( 1514, 1316.697, -895.876, 39.624, 0, 0, 180 ), 0, 0, 0 }, {createObject ( 1514, 251.762, -55.555, 1.679, 0, 0, 0 ), 0, 0, 0 }, } local markers = { {1353.1480712891, -1757.9229736328, 13.5078125}, {-1561.990, -2733.559, 47.743}, --{1832.750, -1842.396, 12.578}, {1313.498, -898.805, 38.578}, {244.183, -49.155, 0.578}, {254.637, -64.013, 0.578}, {2325.879, 74.452, 23.508}, {2437.921, 2065.402, 9.820}, {2420.3723144531, -1509.0484619141, 24}, } function respawnCashRegisters ( ) for k,v in ipairs ( cashRegister ) do setTimer (respawnObject, 7500, 1, ( v[1] ) ) end end addEventHandler ("onClientObjectBreak", root, respawnCashRegisters ) function secsToMin(seconds) local hours = 0 local minutes = 0 local secs = 0 local theseconds = seconds if theseconds >= 60*60 then hours = math.floor(theseconds / (60*60)) theseconds = theseconds - ((60*60)*hours) end if theseconds >= 60 then minutes = math.floor(theseconds / (60)) theseconds = theseconds - ((60)*minutes) end if theseconds >= 1 then secs = theseconds end if minutes < 10 then minutes = "0"..minutes end if secs < 10 then secs = "0"..secs end return minutes,secs end -- Marker and ped functions function createMarkers ( ) for k,v in ipairs(peds) do local x, y, z = getElementPosition(v[1]) -- createBlip ( x, y, z, 53, 1, 0, 0, 0, 0, 0, 1000 ) local ass = createBlip(x, y, z, 58) setElementData(ass ,"blipName", "Assaltos") end --[[ for i, v in ipairs ( markers ) do local x = v[1] local y = v[2] local z = v[3] safeMarker = createMarker ( x, y, z, "cylinder", 3, 0, 0, 0, 0 ) addEventHandler ("onClientMarkerHit", safeMarker, robberyCancelOnMarkerHit ) addEventHandler ("onClientMarkerLeave", safeMarker, robberyCancelOnMarkerHit ) end ]]-- end addEventHandler ("onClientResourceStart", resourceRoot, createMarkers ) function breakCashRegister ( player ) if ( player == localPlayer and robCashRegister == false and robberyStarted == true ) then triggerServerEvent ("GTIstoreRob_payOutForCashRegister", localPlayer ) robCashRegister = true timer = setTimer ( timeForCashRegister, 360000, 1 ) else cancelEvent() end end function cancelTheKill ( player ) cancelEvent () end for k,v in ipairs(peds) do addEventHandler ( "onClientPedDamage", v[1], cancelTheKill ) setElementFrozen ( v[1], true ) setElementInterior ( v[1], v[3] ) setElementDimension ( v[1], v[2] ) end for k,v in ipairs(cashRegister) do addEventHandler ("onClientObjectBreak", v[1], breakCashRegister ) setElementInterior ( v[1], v[3] ) setElementDimension ( v[1], v[2] ) setElementDoubleSided ( v[1], true ) end function isItAPedToRob( ped ) for k,v in ipairs(peds) do if v[1] == ped then return true end end end local teste1 = createColSphere(2402.549, -1986.312, 13.546,3) local teste2 = createColSphere(1316.687, -896.606, 39.578,3) local teste3 = createColSphere(1348.748046875, -1760.7326660156, 13.549824714661,3) local teste4 = createColSphere(2411.5866699219, -1505.5615234375, 24.002511978149,3) function detectAim( target ) --local job = exports.btc_employment:getPlayerJob(true) --if getPlayerTeam(localPlayer) == getTeamFromName("Policia") then return end if isElementWithinColShape(localPlayer, teste1) or isElementWithinColShape(localPlayer, teste2) or isElementWithinColShape(localPlayer, teste3) or isElementWithinColShape(localPlayer, teste4) then local pedSlot = getPedWeaponSlot ( localPlayer ) if (pedSlot == 0) then return end local arma = getPlayerWeapon ( localPlayer ) if (arma == 22) then return end if ( target ) and ( getElementType( target ) == "ped" ) and (source == localPlayer) and getControlState("aim_weapon") and isItAPedToRob(target) then if ( robberyStarted == true ) then if not isDX then exports.btc_hud:dm("Porfavor eu não tenho mais dinheiro me deixe em paz!.", 200, 0, 0 ) isDX = true setTimer(function() isDX = false end, 10000, 1) return end end if (not robberyStarted) then local policiaTeam = getTeamFromName ( "Policia" ) local groveCount = countPlayersInTeam ( policiaTeam ) -----[error]-------------[error]-------------------------[error]-----------------[error]---------- [error] [error] if groveCount >= 3 then setPedAnimation( target, "SHOP", "SHP_Rob_GiveCash", 3000, false, false, false, false) triggerServerEvent ("GTIstoreRob_WantedLevel", localPlayer ) theRobbery = true exports.btc_hud:dm("(fique dentro do local por 3 minutos!)", 200, 255, 0) exports.btc_hud:dm("Mãos pra cima isso é um assalto", 200, 0, 0) isDX = true setTimer(function() isDX = false end, 10000, 1) robberyStarted = true setElementData(localPlayer, "isPlayerRobbing", true) cancelRobb = true intLeave = true seconds = 180 countDown = setTimer ( cDown, 1000, 180 ) else outputChatBox("#dc143c[AVISO]:#ffffff Não tem policia na cidade ( minimo 3 policiais ), vaza daqui!", 255, 255, 255, true) end end end end end addEventHandler ( "onClientPlayerTarget", localPlayer, detectAim ) addEventHandler ( "onClientColShapeHit", root, detectAim ) function timeForCashRegister ( ) robCashRegister = false end function cDown ( ) seconds = seconds - 1 local mins,secds = secsToMin(seconds) if mins == "00" and secds == "00" then --time is up killTimer( countDown ) createMoneyBag() setElementData(localPlayer, "isPlayerRobbing", false) exports.btc_hud:drawStat("storeRobTimer", "", "", 200, 0, 0) else exports.btc_hud:drawStat("storeRobTimer", "Tempo restante: ", mins..":"..secds, 200, 0, 0) end end function createMoneyBag ( ) triggerServerEvent ("GTIstoreRob_moneyBag", localPlayer ) x, y, z = getElementPosition ( localPlayer ) colshape = createColCuboid ( x-200, y-200, z-50, 400, 400, 100 ) exports.btc_hud:dm("Assalto com sucesso saia da zona verde que apareceu no radar para receber o dinheiro!", 200, 0, 0) leaveAreaRadar = createRadarArea ( x-200, y-200, 400, 450, 0, 200, 0, 150 ) addEventHandler ("onClientColShapeLeave", colshape, payoutForSafe ) hasBag = true end function payoutForSafe ( player ) if ( player == localPlayer ) and not isTimer(payTimer) then payTimer = setTimer(function() if (getElementInterior(localPlayer) ~= 0) or (getElementDimension(localPlayer) ~= 0) then return end if ( robberyStarted == false ) then return end if ( hasBag == false ) then return end triggerServerEvent ("GTIstoreRob_payoutForSafe", localPlayer ) c = setTimer ( isRobberyFalseAgain, 180000, 1 ) destroyElement ( colshape ) destroyElement ( leaveAreaRadar ) end, 500, 1 ) end end -- Cancel the robbery functions --[[function createMarkers ( ) for i, a in ipairs ( cancelMarkers ) do local x = a[1] local y = a[2] local z = a[3] cancelMarker = createMarker ( x, y, z, "cylinder", 4, 0, 0, 0, 0 ) addEventHandler ("onClientMarkerHit", cancelMarker, robberyCancelOnMarkerHit ) end end addEventHandler ("onClientResourceStart", resourceRoot, createMarkers )--]] local recieved = {} function cancelRobbery ( jobName ) if ( source == localPlayer ) then if ( intLeave == false ) then return end if ( robberyStarted == false) then return end if ( theRobbery == false ) then return end triggerServerEvent ("GTIstoreRob_stopMission", localPlayer ) unbindKey ( "N", "down", startCrack ) exports.btc_hud:drawStat("storeRobTimer", "", "", 200, 0, 0) exports.btc_hud:drawNote ("StoreRobCrackSafeNote", "", 255, 0, 0, 0 ) if (not recieved[localPlayer]) then exports.btc_hud:dm("Você falhou no assalto!", 200, 0, 0) recieved[localPlayer] = true end robCashRegister = true theRobbery = false hasBag = false if isElement ( colshape ) then destroyElement ( colshape ) end if isElement ( leaveAreaRadar ) then destroyElement ( leaveAreaRadar ) end setElementData(localPlayer, "isPlayerRobbing", false) if isTimer ( countDown ) then killTimer ( countDown ) end if isTimer ( timer ) then killTimer ( timer ) end if isTimer ( c ) then killTimer ( c ) end c = setTimer ( isRobberyFalseAgain, 180000, 1 ) end end addEventHandler ("onClientPlayerQuitJob", root, function ( jobName ) if not jobName then return true else return cancelRobbery ( ) end end ) addEventHandler ("onClientPlayerGetJob", root, function ( jobName ) if jobName == "Criminal" then return true else return cancelRobbery ( ) end end ) addEventHandler ("onClientPlayerWasted", localPlayer, function ( ) cancelRobbery(localPlayer) end ) addEvent ("GTIstoreRob_CancelOnArrest", true ) addEventHandler ("GTIstoreRob_CancelOnArrest", root, function () cancelRobbery() end ) local zone = createColCuboid(2404.43433, -1511.25940, 20.30252, 15.187744140625, 19.721435546875, 6.6000484466553) local zone2 = createColCuboid(2388.13867, -1993.72693, 11.40695, 16.262451171875, 12.043823242188, 5.600008392334) local zone3 = createColCuboid(1342.31470, -1770.88306, 10.95000, 22.0830078125, 11.440673828125, 6.5000213623047) local zone4 = createColCuboid(1304.45557, -897.47839, 38.07304, 26.8134765625, 20.557800292969, 7.1000274658203) function robberyCancelOnMarkerHit ( player ) if ( player == localPlayer ) then if ( intLeave == false ) then return end if ( hasBag == true ) then return end unbindKey ( "N", "down", startCrack ) exports.btc_hud:drawNote ("StoreRobCrackSafeNote", "", 255, 0, 0, 0 ) if ( cancelRobb == false ) then return end if ( robberyStarted == false) then return end exports.btc_hud:drawStat("storeRobTimer", "", "", 200, 0, 0) if (not recieved[localPlayer]) then exports.btc_hud:dm("Você falhou no assalto!", 200, 0, 0) recieved[localPlayer] = true end setElementData(localPlayer, "isPlayerRobbing", false) theRobbery = false cancelRobb = false hasBag = false robCashRegister = true triggerServerEvent ("GTIstoreRob_stopMission", localPlayer ) if isElement ( colshape ) then destroyElement ( colshape ) end if isElement ( leaveAreaRadar ) then destroyElement ( leaveAreaRadar ) end if isTimer ( countDown ) then killTimer ( countDown ) end if isTimer ( timer ) then killTimer ( timer ) end if isTimer ( c ) then killTimer ( c ) end c = setTimer ( isRobberyFalseAgain, 180000, 1 ) end end addEventHandler ("onClientColShapeLeave", zone, robberyCancelOnMarkerHit ) addEventHandler ("onClientColShapeLeave", zone2, robberyCancelOnMarkerHit ) addEventHandler ("onClientColShapeLeave", zone3, robberyCancelOnMarkerHit ) addEventHandler ("onClientColShapeLeave", zone4, robberyCancelOnMarkerHit ) --addEventHandler ("onClientColShapeHit", colShapeDerFix, robberyCancelOnMarkerHit ) --addEventHandler ("onClientColShapeLeave", colShapeDerFix, robberyCancelOnMarkerHit ) --addEventHandler ("onClientInteriorExit", root, robberyCancelOnMarkerHit ) function isRobberyFalseAgain ( ) robberyStarted = false robCashRegister = false theRobbery = false cancelRobb = false intLeave = false hasBag = false if isTimer ( timer ) then killTimer ( timer ) end if isTimer ( c ) then killTimer ( c ) end end Edited October 11, 2019 by sanleygfx
Moderators Lord Henry Posted October 12, 2019 Moderators Posted October 12, 2019 Utilize o botão <> do fórum para postar códigos. Não cole direto no texto. Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanks! Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment Discord Oficial do MTA: https://mtasa.com/discord Blacklist e Whitelist de Scripters: Planilha Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.
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