Jump to content

Marwan_bv

Members
  • Posts

    30
  • Joined

  • Last visited

Everything posted by Marwan_bv

  1. لازم اسوي للصور وكل شيئ او فقط الكلاينت والسيرفر في ملف الميتا
  2. مشكور جدا على الرد قيد المراجعة
  3. شباب عندي كتير مودات وطبعا لما يدخل لاعب يلاقي الملفات اكتر من 130 ملف ممكن طريقة اخلي المودات تحميل مخفي يعني يدخل الاعب ومايلاقي الكتير ليحملو بغض النظر عن المواتر لاني مسويلها تحميل مخفي
  4. شكرا خويا على الدعم انا كمتال عندي مودات تفتح بف8 كايز اجمعها في لوحة واحدة ونخصص كل زر لمود معين وانا اتلخبط علي الامر لي يفتح المودات التانية فقط تسلم على الدعم راح اجرب واشوفه واكمل المود واعرضو عليكم وانشاء الله راح نكون فالعون في المستقبل
  5. شكلك ماعندك مخ قولي شو فهمت من سؤالي فالموضوع
  6. السكوت على الاحمق جوابه مو عندي وقت اضيعه معاك ارحل يلا
  7. ياخويا انا عارف انا سويها بسيطة واريد تعلم فتح مود بمود اخر ولما اتعلمو اشوف التصميم ولا يهمك انا معا زو الموسيقى مو الاغلاق او الفتح
  8. ايش فيك انا حاولت مين قالك مو حاولت ????
  9. وضح اكتر شوف الكود GUIEditor = { button = {} } wn = guiCreateWindow(497, 145, 572, 524, "لوحة اختصارات", false) guiWindowSetSizable(wn, false) guiSetAlpha(wn, 0.93) guiSetProperty(wn, "CaptionColour", "FF4AEE10") guiSetVisible (wn,false) cl = guiCreateButton(202, 453, 168, 61, "إغلاق", false, wn) guiSetProperty(cl, "NormalTextColour", "FFF00D0D") btn1 = guiCreateButton(33, 56, 137, 48, "الموسيقى", false, wn) executeCommandHandler ( "sound", playerSource ) GUIEditor.button[1] = guiCreateButton(395, 56, 137, 48, "الاعلان", false, wn) GUIEditor.button[2] = guiCreateButton(33, 156, 137, 48, "القوانين", false, wn) GUIEditor.button[3] = guiCreateButton(213, 156, 137, 48, "الدرون", false, wn) GUIEditor.button[4] = guiCreateButton(213, 56, 137, 48, "المواتر", false, wn) GUIEditor.button[5] = guiCreateButton(395, 156, 137, 48, "", false, wn) function ahmed() guiSetVisible(wn,true) showCursor(true) end bindKey ( "F7", "down", ahmed) addEventHandler("onClientGUIClick",root, function() if ( source == cl ) then guiSetVisible(wn,false) showCursor(false) end end )
  10. تسامحو تحابو شباب والله ازعل لما اشوف اني فتحت موضوع واشوف ناس يتصارعو فيه الخطأ خطئي اسف
  11. اوكي شكرا على النصيحةقولي الكود كيف اضيفه للمود
  12. انا عملت لوحة اختصارات يعني تفتح لوحات اخرى بأزرار في اللوحة وهادي اللوحات الاخرى تفتح بأمر كيف اربط بين الزر ولوحة اخرى تفتح بأمر
  13. اوكي بس قولي كيف اظيف الكود للكود اللي نشرتو فوق
  14. شكرا الله يخليك شكرا الله يخليك ممكن مساعدة بخصوص كود السجن اللي طلبتو
  15. <cache = false /> حطيتها هكدا في ملف الميتا فما اشتغل المود وضح هل احطه كمت هي بدون اقواس او كيفاحطه
  16. بس شوف الكود اللي كاتبو يصلح للمود اللي باعتو انا او لازم مود شرطة اخر المشكل كود الشرطة كبير اللي عندي كيف ادمج كودك ياريت تشرح ترى جديد فالبرمجة واحاول افهم بايستيعاب
  17. اعرف شغال المشكل اريده لما امسك شخص يجي ورايا مو يتجمد في مكانه ومشكور على وقتك مشكل القروب اتحل بفضل الله تم مود وانا اعرف مافي مشكل بالمود بس الشخص اللي ينمسك يتجمد في مكانه حتى يدخل السجن بعد مدة اريدو انو لما ينمسك يجي ورايا حتى الماركر بس
  18. ممكن كود احمي المودات من السرقة
  19. سلام هدا سكربت شرطة وسجن يعمل بالتيم المهم هو انو لما تقبض على حد عن طريق تأشر يدك عليه يتجمد في مكانه وينشأ ماركر امام مركز الشرطة ولما تخش عليه الاعب يدخل السجن بدي اعدل عليه انو لما تمسك الاعب يمشي وراك لغاية ما توصلو للماركر وهو يخش السجن ممكن مساعدة الاكواد Report post Posted Monday at 18:06 On 06/04/2020 at 15:33, jakson said: اعرض كودك و راح نساعدك On 06/04/2020 at 16:08, -Ilker. said: تحقق من الداتا الي مسجل عليها اسم القروب ? addEventHandler("onClientPlayerWeaponFire", localPlayer, function(wp) if wp == 41 then return end local team = getPlayerTeam(source) if team and getTeamName(team) ~= "Police" then if not isTimer(gunFireCheckTimer) then gunFireCheckTimer = setTimer(function() end, 3500, 1) local wL = getPlayerWantedLevel(source) if wp ~= 16 then if wL < 2 then for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) == "Police" then local x1, y1, z1 = getElementPosition(source) local x2, y2, z2 = getElementPosition(player) if getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) < 15 then triggerServerEvent("setWantLevel", localPlayer, 2) break end end end end else if wL < 4 then for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) == "Police" then local x1, y1, z1 = getElementPosition(source) local x2, y2, z2 = getElementPosition(player) if getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) < 15 then triggerServerEvent("setWantLevel", localPlayer, 4) break end end end end end end end end) addEventHandler("onClientVehicleDamage", root, function(attacker) local player = getVehicleController(source) if attacker then if getElementType(attacker) == "vehicle" then attacker = getVehicleController(attacker) end if player and attacker and getElementType(attacker) == "player" then local playerTeam = getPlayerTeam(player) local attackerTeam = getPlayerTeam(attacker) if playerTeam and getTeamName(playerTeam) == "Police" and attackerTeam ~= playerTeam then if not isTimer(vehicleDMGCheckTimer) then vehicleDMGCheckTimer = setTimer(function() end, 3500, 1) local wL = getPlayerWantedLevel(attacker) if wL < 3 then triggerServerEvent("setWantLevel", attacker, 3) end end end end end end) addEventHandler("onClientPlayerDamage", localPlayer, function(attacker, wp) if wp == 41 then return end if attacker and attacker ~= source then --if getElementType(attacker) == "vehicle" then --attacker = getVehicleController(attacker) --end local attackerTeam = getPlayerTeam(attacker) local sourceTeam = getPlayerTeam(source) local LegalStatus = getElementData(source, "LegalStatus") if attackerTeam and getTeamName(attackerTeam) == "Police" then local wL = getPlayerWantedLevel(source) if wL <= 2 then cancelEvent() end end if LegalStatus == "Jailed" or LegalStatus == "Arrested" then cancelEvent() end if sourceTeam and getTeamName(sourceTeam) == "Police" and getElementData(attacker, "LegalStatus") == "Jailed" then cancelEvent() end if attackerTeam and getTeamName(attackerTeam) == "Police" and wp == 3 and LegalStatus == "Jailed" then if isElementWithinColShape(localPlayer, JailCol1) or isElementWithinColShape(localPlayer, JailCol2) or isElementWithinColShape(localPlayer, JailCol3) or isElementWithinColShape(localPlayer, JailCol4) then return end triggerServerEvent("backMeToJail", localPlayer) end end end) addEvent("startAlarm", true) addEventHandler("startAlarm", root, function() if isElement(alarmSound) then destroyElement(alarmSound) end if isTimer(alarmTimer) then killTimer(alarmTimer) end alarmSound = playSound("jail-Warning.mp3", true) alarmTimer = setTimer(function() if isElement(alarmSound) then destroyElement(alarmSound) end end, 8000, 1) end) Blip = {} addEventHandler("onClientResourceStart", resourceRoot, function() for i, player in ipairs(getElementsByType("player")) do Blip[player] = createBlipAttachedTo(player) end end) addEventHandler("onClientPlayerJoin", root, function() Blip[source] = createBlipAttachedTo(source) end) addEventHandler("onClientPlayerQuit", root, function() if isElement(Blip[source]) then destroyElement(Blip[source]) end Blip[source] = nil end) JailCol1 = createColCuboid(1546.53, -1618.5, -90.35, 18.85, 5, 4) JailCol2 = createColCuboid(1546.53, -1640.7, -90.35, 18.85, 6.5, 4) JailCol3 = createColCuboid(1542, -1640.7, -84, 32.7, 6.5, 4) JailCol4 = createColCuboid(1542, -1618.5, -84, 32.7, 5, 4) addEvent("onHacking", true) addEventHandler("onHacking", root, function() if isTimer(hackShowTimer) then killTimer(hackShowTimer) end hackShow = getPlayerName(source) exports.TopBarChat:sendClientMessage(getPlayerName(source).." is hacking the Police PC.", 255, 0, 100, false, 7) hackShowTimer = setTimer(function() hackShow = false end, 7000, 1) end) addEvent("onEscaping", true) addEventHandler("onEscaping", root, function(rsp) if isTimer(escapShowTimer) then killTimer(escapShowTimer) end escapShow = rsp exports.TopBarChat:sendClientMessage(getPlayerName(source).." has escape from the Jail, responsible for his escape "..rsp, 255, 0, 0, false, 7) escapShowTimer = setTimer(function() escapShow = false end, 7000, 1) end) local x, y = guiGetScreenSize() addEventHandler("onClientPreRender", root, function() local Cop = getElementData(localPlayer, "ArresterCop") if isElement(Cop) and not isPedInVehicle(localPlayer) then local copX, copY, copZ = getElementPosition(Cop) local PrisonerX, PrisonerY, PrisonerZ = getElementPosition(localPlayer) local copInt = getElementInterior(Cop) local prisonerInt = getElementInterior(localPlayer) if copInt ~= prisonerInt and not isTimer(intTimer) then intTimer = setTimer(function() end, 3000, 1) triggerServerEvent("warpPosAndIntAndDim", localPlayer, "INT", copInt, copX, copY, copZ) end local copDim = getElementDimension(Cop) local prisonerDim = getElementDimension(localPlayer) if copDim ~= prisonerDim and not isTimer(dimTimer) then dimTimer = setTimer(function() end, 3000, 1) triggerServerEvent("warpPosAndIntAndDim", localPlayer, "DIM", copDim, copX+0.1, copY+0.1, copZ+0.5) end local dis = getDistanceBetweenPoints3D(copX, copY, copZ, PrisonerX, PrisonerY, PrisonerZ) if (dis > 20) then if not isTimer(tooFarCopTimer) then triggerServerEvent("warpPosAndIntAndDim", localPlayer, false, false, copX+1, copY+1, copZ) setControlState("forwards", false) setControlState("walk", false) setControlState("sprint", false) tooFarCopTimer = setTimer(function() end, 3000, 1) end elseif (dis > 10) then setControlState("forwards", true) setControlState("sprint", true) setControlState("walk", false) elseif (dis > 3) then setControlState("forwards", true) setControlState("sprint", false) setControlState("walk", false) elseif (dis > 2) then setControlState("forwards", true) setControlState("sprint", false) setControlState("walk", true) elseif (dis > 1) then setControlState("forwards", false) setControlState("walk", false) setControlState("sprint", false) end setPedRotation(localPlayer, 360-math.deg(math.atan2((copX-PrisonerX), (copY-PrisonerY))) % 360) setCameraTarget(localPlayer) end local HackTime = getElementData(localPlayer, "HackTime") or 0 if HackTime and HackTime > 0 then dxDrawFramedText("Hacking in process: "..HackTime.." sec", x*0.1, y*0.550, x*0.99, y*0.97, tocolor(255, 0, 0, 255), 1.5, "clear", "center") end if hackShow then dxDrawImage(x/2+160, y-110, 100, 100, "hack.png") end if escapShow then dxDrawImage(x/2+160, y-110, 100, 100, "esc.png") end if isElement(alarmSound) then if getElementInterior(localPlayer) ~= 6 then setSoundVolume(alarmSound, 0) else setSoundVolume(alarmSound, 1) end end LegalStatus = getElementData(localPlayer, "LegalStatus") if LegalStatus == "Arrested" or LegalStatus == "Jailed" then setPedWeaponSlot(localPlayer, 0) end JailTime = tonumber(getElementData(localPlayer, "JailTime")) or 0 BailAmount = tonumber(getElementData(localPlayer, "BailAmount")) or 0 if LegalStatus == "Jailed" then if (JailTime) > 0 then dxDrawFramedText("Remaining Time: "..JailTime.." Secs", x*0.875, y*0.911, x*0.99, y*0.97, tocolor(0, 150, 255, 255), 1.5, "clear") end if getKeyBoundToFunction(onJailTimeComplete) then if JailTime <= 0 and BailAmount <= 0 then dxDrawFramedText("Your Jail time finish | Press 'H' to exit the jail.", x*0.875, y*0.911, x*0.99, y*0.97, tocolor(0, 255, 0, 255), 1.5, "clear") else dxDrawFramedText("Your Jail time finish | Press 'H' to pay your bail and exit the jail.", x*0.875, y*0.911, x*0.99, y*0.97, tocolor(255, 150, 0, 255), 1.5, "clear") end end dxDrawFramedText("Bail: $"..BailAmount, x*0.875, y*0.951, x*0.99, y*0.97, tocolor(150, 255, 0, 255), 1.5, "clear") end end) addEventHandler("onClientMarkerHit", root, function(player) if player == localPlayer then if source == sendToJail then triggerServerEvent("sendToJail", localPlayer) destroyElement(sendToJail) end end end) setTimer(function() local team = getPlayerTeam(localPlayer) if team and getTeamName(team) == "Police" then local r, g, b = getTeamColor(team) setPlayerNametagColor(localPlayer, r, g, b) setBlipColor(Blip[localPlayer], r, g, b, 255) jMarker = false for _, p in ipairs(getElementsByType("player")) do if (getElementData(p, "ArresterCop") == localPlayer) then jMarker = true if not isElement(sendToJail) then sendToJail = createMarker(1533, -1676, 11, "cylinder", 5, 255, 0, 255, 150) end break end end if not jMarker and isElement(sendToJail) then destroyElement(sendToJail) end for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) ~= "Police" then local LegalStatus = getElementData(player, "LegalStatus") local wL = getPlayerWantedLevel(player) if LegalStatus == "Arrested" or LegalStatus == "Jailed" then setPlayerNametagColor(player, 0, 0, 0) setBlipColor(Blip[player], 0, 0, 0, 255) elseif wL >= 5 then setPlayerNametagColor(player, 255, 0, 0) setBlipColor(Blip[player], 255, 0, 0, 255) elseif wL >= 3 then setPlayerNametagColor(player, 255, 150, 0) setBlipColor(Blip[player], 255, 150, 0, 255) elseif wL >= 1 then setPlayerNametagColor(player, 255, 255, 0) setBlipColor(Blip[player], 255, 250, 0, 255) elseif wL == 0 then setPlayerNametagColor(player, 255, 255, 255) setBlipColor(Blip[player], 255, 250, 255, 255) end else if team and getTeamName(team) == "Police" then local r, g, b = getTeamColor(team) setPlayerNametagColor(player, r, g, b) setBlipColor(Blip[player], r, g, b, 255) end end end else for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team then local r, g, b = getTeamColor(team) setPlayerNametagColor(player, r, g, b) setBlipColor(Blip[player], r, g, b, 255) end end end if LegalStatus == "Jailed" then if isElementWithinColShape(localPlayer, JailCol1) or isElementWithinColShape(localPlayer, JailCol2) or isElementWithinColShape(localPlayer, JailCol3) or isElementWithinColShape(localPlayer, JailCol4) then if JailTime > 0 then setElementData(localPlayer, "JailTime", JailTime-1) if getKeyBoundToFunction(onJailTimeComplete) then unbindKey("H", "down", onJailTimeComplete) end elseif BailAmount >= 50 then bindJailExit() setElementData(localPlayer, "BailAmount", BailAmount-50) elseif BailAmount < 50 and BailAmount > 0 then setElementData(localPlayer, "BailAmount", 0) bindJailExit() else bindJailExit() end end end end, 1000, 0) function bindJailExit() if not getKeyBoundToFunction(onJailTimeComplete) then bindKey("H", "down", onJailTimeComplete) end end function onJailTimeComplete() if JailTime <= 0 then if BailAmount > 0 then if getPlayerMoney() >= BailAmount then setElementData(localPlayer, "LegalStatus", "Free") unbindKey("H", "down", onJailTimeComplete) setElementPosition(localPlayer, 255.5, 86.5, 1002.5) setElementInterior(localPlayer, 6) triggerServerEvent("takeMoney", localPlayer, BailAmount) setElementData(localPlayer, "BailAmount", false) setElementData(localPlayer, "JailTime", false) else exports.TopBarChat:sendClientMessage("You don't have enough money!", 255, 0, 0, false) end else setElementData(localPlayer, "LegalStatus", "Free") unbindKey("H", "down", onJailTimeComplete) setElementPosition(localPlayer, 255.5, 86.5, 1002.5) setElementInterior(localPlayer, 6) end end end function dxDrawFramedText(message, left, top, width, height, color, scale, sans, alignX, alignY, clip, wordBreak, postGUI, frameColor) if not color then color = tocolor(255, 255, 255, 255) end if not frameColor then frameColor = tocolor(0, 0, 0, 255) end if not scale then scale = 1 end if not sans then sans = "sans" end if not alignX then alignX = "right" end if not alignY then alignY = "top" end if not clip then clip = false end if not wordBreak then wordBreak = false end message1 = string.gsub(message, "#%x%x%x%x%x%x", "") dxDrawText(message, left + 1, top + 1, width + 1, height + 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left + 1, top - 1, width + 1, height - 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left - 1, top + 1, width - 1, height + 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left - 1, top - 1, width - 1, height - 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left, top, width, height, color, scale, sans, alignX, alignY, clip, wordBreak, true) end function getPlayerWantedLevel(player) local level = getElementData(player, "WantLvl") or 0 return level end Report post Posted Monday at 18:06 On 06/04/2020 at 15:33, jakson said: اعرض كودك و راح نساعدك On 06/04/2020 at 16:08, -Ilker. said: تحقق من الداتا الي مسجل عليها اسم القروب ? addEventHandler("onClientPlayerWeaponFire", localPlayer, function(wp) if wp == 41 then return end local team = getPlayerTeam(source) if team and getTeamName(team) ~= "Police" then if not isTimer(gunFireCheckTimer) then gunFireCheckTimer = setTimer(function() end, 3500, 1) local wL = getPlayerWantedLevel(source) if wp ~= 16 then if wL < 2 then for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) == "Police" then local x1, y1, z1 = getElementPosition(source) local x2, y2, z2 = getElementPosition(player) if getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) < 15 then triggerServerEvent("setWantLevel", localPlayer, 2) break end end end end else if wL < 4 then for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) == "Police" then local x1, y1, z1 = getElementPosition(source) local x2, y2, z2 = getElementPosition(player) if getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) < 15 then triggerServerEvent("setWantLevel", localPlayer, 4) break end end end end end end end end) addEventHandler("onClientVehicleDamage", root, function(attacker) local player = getVehicleController(source) if attacker then if getElementType(attacker) == "vehicle" then attacker = getVehicleController(attacker) end if player and attacker and getElementType(attacker) == "player" then local playerTeam = getPlayerTeam(player) local attackerTeam = getPlayerTeam(attacker) if playerTeam and getTeamName(playerTeam) == "Police" and attackerTeam ~= playerTeam then if not isTimer(vehicleDMGCheckTimer) then vehicleDMGCheckTimer = setTimer(function() end, 3500, 1) local wL = getPlayerWantedLevel(attacker) if wL < 3 then triggerServerEvent("setWantLevel", attacker, 3) end end end end end end) addEventHandler("onClientPlayerDamage", localPlayer, function(attacker, wp) if wp == 41 then return end if attacker and attacker ~= source then --if getElementType(attacker) == "vehicle" then --attacker = getVehicleController(attacker) --end local attackerTeam = getPlayerTeam(attacker) local sourceTeam = getPlayerTeam(source) local LegalStatus = getElementData(source, "LegalStatus") if attackerTeam and getTeamName(attackerTeam) == "Police" then local wL = getPlayerWantedLevel(source) if wL <= 2 then cancelEvent() end end if LegalStatus == "Jailed" or LegalStatus == "Arrested" then cancelEvent() end if sourceTeam and getTeamName(sourceTeam) == "Police" and getElementData(attacker, "LegalStatus") == "Jailed" then cancelEvent() end if attackerTeam and getTeamName(attackerTeam) == "Police" and wp == 3 and LegalStatus == "Jailed" then if isElementWithinColShape(localPlayer, JailCol1) or isElementWithinColShape(localPlayer, JailCol2) or isElementWithinColShape(localPlayer, JailCol3) or isElementWithinColShape(localPlayer, JailCol4) then return end triggerServerEvent("backMeToJail", localPlayer) end end end) addEvent("startAlarm", true) addEventHandler("startAlarm", root, function() if isElement(alarmSound) then destroyElement(alarmSound) end if isTimer(alarmTimer) then killTimer(alarmTimer) end alarmSound = playSound("jail-Warning.mp3", true) alarmTimer = setTimer(function() if isElement(alarmSound) then destroyElement(alarmSound) end end, 8000, 1) end) Blip = {} addEventHandler("onClientResourceStart", resourceRoot, function() for i, player in ipairs(getElementsByType("player")) do Blip[player] = createBlipAttachedTo(player) end end) addEventHandler("onClientPlayerJoin", root, function() Blip[source] = createBlipAttachedTo(source) end) addEventHandler("onClientPlayerQuit", root, function() if isElement(Blip[source]) then destroyElement(Blip[source]) end Blip[source] = nil end) JailCol1 = createColCuboid(1546.53, -1618.5, -90.35, 18.85, 5, 4) JailCol2 = createColCuboid(1546.53, -1640.7, -90.35, 18.85, 6.5, 4) JailCol3 = createColCuboid(1542, -1640.7, -84, 32.7, 6.5, 4) JailCol4 = createColCuboid(1542, -1618.5, -84, 32.7, 5, 4) addEvent("onHacking", true) addEventHandler("onHacking", root, function() if isTimer(hackShowTimer) then killTimer(hackShowTimer) end hackShow = getPlayerName(source) exports.TopBarChat:sendClientMessage(getPlayerName(source).." is hacking the Police PC.", 255, 0, 100, false, 7) hackShowTimer = setTimer(function() hackShow = false end, 7000, 1) end) addEvent("onEscaping", true) addEventHandler("onEscaping", root, function(rsp) if isTimer(escapShowTimer) then killTimer(escapShowTimer) end escapShow = rsp exports.TopBarChat:sendClientMessage(getPlayerName(source).." has escape from the Jail, responsible for his escape "..rsp, 255, 0, 0, false, 7) escapShowTimer = setTimer(function() escapShow = false end, 7000, 1) end) local x, y = guiGetScreenSize() addEventHandler("onClientPreRender", root, function() local Cop = getElementData(localPlayer, "ArresterCop") if isElement(Cop) and not isPedInVehicle(localPlayer) then local copX, copY, copZ = getElementPosition(Cop) local PrisonerX, PrisonerY, PrisonerZ = getElementPosition(localPlayer) local copInt = getElementInterior(Cop) local prisonerInt = getElementInterior(localPlayer) if copInt ~= prisonerInt and not isTimer(intTimer) then intTimer = setTimer(function() end, 3000, 1) triggerServerEvent("warpPosAndIntAndDim", localPlayer, "INT", copInt, copX, copY, copZ) end local copDim = getElementDimension(Cop) local prisonerDim = getElementDimension(localPlayer) if copDim ~= prisonerDim and not isTimer(dimTimer) then dimTimer = setTimer(function() end, 3000, 1) triggerServerEvent("warpPosAndIntAndDim", localPlayer, "DIM", copDim, copX+0.1, copY+0.1, copZ+0.5) end local dis = getDistanceBetweenPoints3D(copX, copY, copZ, PrisonerX, PrisonerY, PrisonerZ) if (dis > 20) then if not isTimer(tooFarCopTimer) then triggerServerEvent("warpPosAndIntAndDim", localPlayer, false, false, copX+1, copY+1, copZ) setControlState("forwards", false) setControlState("walk", false) setControlState("sprint", false) tooFarCopTimer = setTimer(function() end, 3000, 1) end elseif (dis > 10) then setControlState("forwards", true) setControlState("sprint", true) setControlState("walk", false) elseif (dis > 3) then setControlState("forwards", true) setControlState("sprint", false) setControlState("walk", false) elseif (dis > 2) then setControlState("forwards", true) setControlState("sprint", false) setControlState("walk", true) elseif (dis > 1) then setControlState("forwards", false) setControlState("walk", false) setControlState("sprint", false) end setPedRotation(localPlayer, 360-math.deg(math.atan2((copX-PrisonerX), (copY-PrisonerY))) % 360) setCameraTarget(localPlayer) end local HackTime = getElementData(localPlayer, "HackTime") or 0 if HackTime and HackTime > 0 then dxDrawFramedText("Hacking in process: "..HackTime.." sec", x*0.1, y*0.550, x*0.99, y*0.97, tocolor(255, 0, 0, 255), 1.5, "clear", "center") end if hackShow then dxDrawImage(x/2+160, y-110, 100, 100, "hack.png") end if escapShow then dxDrawImage(x/2+160, y-110, 100, 100, "esc.png") end if isElement(alarmSound) then if getElementInterior(localPlayer) ~= 6 then setSoundVolume(alarmSound, 0) else setSoundVolume(alarmSound, 1) end end LegalStatus = getElementData(localPlayer, "LegalStatus") if LegalStatus == "Arrested" or LegalStatus == "Jailed" then setPedWeaponSlot(localPlayer, 0) end JailTime = tonumber(getElementData(localPlayer, "JailTime")) or 0 BailAmount = tonumber(getElementData(localPlayer, "BailAmount")) or 0 if LegalStatus == "Jailed" then if (JailTime) > 0 then dxDrawFramedText("Remaining Time: "..JailTime.." Secs", x*0.875, y*0.911, x*0.99, y*0.97, tocolor(0, 150, 255, 255), 1.5, "clear") end if getKeyBoundToFunction(onJailTimeComplete) then if JailTime <= 0 and BailAmount <= 0 then dxDrawFramedText("Your Jail time finish | Press 'H' to exit the jail.", x*0.875, y*0.911, x*0.99, y*0.97, tocolor(0, 255, 0, 255), 1.5, "clear") else dxDrawFramedText("Your Jail time finish | Press 'H' to pay your bail and exit the jail.", x*0.875, y*0.911, x*0.99, y*0.97, tocolor(255, 150, 0, 255), 1.5, "clear") end end dxDrawFramedText("Bail: $"..BailAmount, x*0.875, y*0.951, x*0.99, y*0.97, tocolor(150, 255, 0, 255), 1.5, "clear") end end) addEventHandler("onClientMarkerHit", root, function(player) if player == localPlayer then if source == sendToJail then triggerServerEvent("sendToJail", localPlayer) destroyElement(sendToJail) end end end) setTimer(function() local team = getPlayerTeam(localPlayer) if team and getTeamName(team) == "Police" then local r, g, b = getTeamColor(team) setPlayerNametagColor(localPlayer, r, g, b) setBlipColor(Blip[localPlayer], r, g, b, 255) jMarker = false for _, p in ipairs(getElementsByType("player")) do if (getElementData(p, "ArresterCop") == localPlayer) then jMarker = true if not isElement(sendToJail) then sendToJail = createMarker(1533, -1676, 11, "cylinder", 5, 255, 0, 255, 150) end break end end if not jMarker and isElement(sendToJail) then destroyElement(sendToJail) end for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) ~= "Police" then local LegalStatus = getElementData(player, "LegalStatus") local wL = getPlayerWantedLevel(player) if LegalStatus == "Arrested" or LegalStatus == "Jailed" then setPlayerNametagColor(player, 0, 0, 0) setBlipColor(Blip[player], 0, 0, 0, 255) elseif wL >= 5 then setPlayerNametagColor(player, 255, 0, 0) setBlipColor(Blip[player], 255, 0, 0, 255) elseif wL >= 3 then setPlayerNametagColor(player, 255, 150, 0) setBlipColor(Blip[player], 255, 150, 0, 255) elseif wL >= 1 then setPlayerNametagColor(player, 255, 255, 0) setBlipColor(Blip[player], 255, 250, 0, 255) elseif wL == 0 then setPlayerNametagColor(player, 255, 255, 255) setBlipColor(Blip[player], 255, 250, 255, 255) end else if team and getTeamName(team) == "Police" then local r, g, b = getTeamColor(team) setPlayerNametagColor(player, r, g, b) setBlipColor(Blip[player], r, g, b, 255) end end end else for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team then local r, g, b = getTeamColor(team) setPlayerNametagColor(player, r, g, b) setBlipColor(Blip[player], r, g, b, 255) end end end if LegalStatus == "Jailed" then if isElementWithinColShape(localPlayer, JailCol1) or isElementWithinColShape(localPlayer, JailCol2) or isElementWithinColShape(localPlayer, JailCol3) or isElementWithinColShape(localPlayer, JailCol4) then if JailTime > 0 then setElementData(localPlayer, "JailTime", JailTime-1) if getKeyBoundToFunction(onJailTimeComplete) then unbindKey("H", "down", onJailTimeComplete) end elseif BailAmount >= 50 then bindJailExit() setElementData(localPlayer, "BailAmount", BailAmount-50) elseif BailAmount < 50 and BailAmount > 0 then setElementData(localPlayer, "BailAmount", 0) bindJailExit() else bindJailExit() end end end end, 1000, 0) function bindJailExit() if not getKeyBoundToFunction(onJailTimeComplete) then bindKey("H", "down", onJailTimeComplete) end end function onJailTimeComplete() if JailTime <= 0 then if BailAmount > 0 then if getPlayerMoney() >= BailAmount then setElementData(localPlayer, "LegalStatus", "Free") unbindKey("H", "down", onJailTimeComplete) setElementPosition(localPlayer, 255.5, 86.5, 1002.5) setElementInterior(localPlayer, 6) triggerServerEvent("takeMoney", localPlayer, BailAmount) setElementData(localPlayer, "BailAmount", false) setElementData(localPlayer, "JailTime", false) else exports.TopBarChat:sendClientMessage("You don't have enough money!", 255, 0, 0, false) end else setElementData(localPlayer, "LegalStatus", "Free") unbindKey("H", "down", onJailTimeComplete) setElementPosition(localPlayer, 255.5, 86.5, 1002.5) setElementInterior(localPlayer, 6) end end end function dxDrawFramedText(message, left, top, width, height, color, scale, sans, alignX, alignY, clip, wordBreak, postGUI, frameColor) if not color then color = tocolor(255, 255, 255, 255) end if not frameColor then frameColor = tocolor(0, 0, 0, 255) end if not scale then scale = 1 end if not sans then sans = "sans" end if not alignX then alignX = "right" end if not alignY then alignY = "top" end if not clip then clip = false end if not wordBreak then wordBreak = false end message1 = string.gsub(message, "#%x%x%x%x%x%x", "") dxDrawText(message, left + 1, top + 1, width + 1, height + 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left + 1, top - 1, width + 1, height - 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left - 1, top + 1, width - 1, height + 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left - 1, top - 1, width - 1, height - 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left, top, width, height, color, scale, sans, alignX, alignY, clip, wordBreak, true) end function getPlayerWantedLevel(player) local level = getElementData(player, "WantLvl") or 0 return level end
  20. addEventHandler("onClientPlayerWeaponFire", localPlayer, function(wp) if wp == 41 then return end local team = getPlayerTeam(source) if team and getTeamName(team) ~= "Police" then if not isTimer(gunFireCheckTimer) then gunFireCheckTimer = setTimer(function() end, 3500, 1) local wL = getPlayerWantedLevel(source) if wp ~= 16 then if wL < 2 then for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) == "Police" then local x1, y1, z1 = getElementPosition(source) local x2, y2, z2 = getElementPosition(player) if getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) < 15 then triggerServerEvent("setWantLevel", localPlayer, 2) break end end end end else if wL < 4 then for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) == "Police" then local x1, y1, z1 = getElementPosition(source) local x2, y2, z2 = getElementPosition(player) if getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) < 15 then triggerServerEvent("setWantLevel", localPlayer, 4) break end end end end end end end end) addEventHandler("onClientVehicleDamage", root, function(attacker) local player = getVehicleController(source) if attacker then if getElementType(attacker) == "vehicle" then attacker = getVehicleController(attacker) end if player and attacker and getElementType(attacker) == "player" then local playerTeam = getPlayerTeam(player) local attackerTeam = getPlayerTeam(attacker) if playerTeam and getTeamName(playerTeam) == "Police" and attackerTeam ~= playerTeam then if not isTimer(vehicleDMGCheckTimer) then vehicleDMGCheckTimer = setTimer(function() end, 3500, 1) local wL = getPlayerWantedLevel(attacker) if wL < 3 then triggerServerEvent("setWantLevel", attacker, 3) end end end end end end) addEventHandler("onClientPlayerDamage", localPlayer, function(attacker, wp) if wp == 41 then return end if attacker and attacker ~= source then --if getElementType(attacker) == "vehicle" then --attacker = getVehicleController(attacker) --end local attackerTeam = getPlayerTeam(attacker) local sourceTeam = getPlayerTeam(source) local LegalStatus = getElementData(source, "LegalStatus") if attackerTeam and getTeamName(attackerTeam) == "Police" then local wL = getPlayerWantedLevel(source) if wL <= 2 then cancelEvent() end end if LegalStatus == "Jailed" or LegalStatus == "Arrested" then cancelEvent() end if sourceTeam and getTeamName(sourceTeam) == "Police" and getElementData(attacker, "LegalStatus") == "Jailed" then cancelEvent() end if attackerTeam and getTeamName(attackerTeam) == "Police" and wp == 3 and LegalStatus == "Jailed" then if isElementWithinColShape(localPlayer, JailCol1) or isElementWithinColShape(localPlayer, JailCol2) or isElementWithinColShape(localPlayer, JailCol3) or isElementWithinColShape(localPlayer, JailCol4) then return end triggerServerEvent("backMeToJail", localPlayer) end end end) addEvent("startAlarm", true) addEventHandler("startAlarm", root, function() if isElement(alarmSound) then destroyElement(alarmSound) end if isTimer(alarmTimer) then killTimer(alarmTimer) end alarmSound = playSound("jail-Warning.mp3", true) alarmTimer = setTimer(function() if isElement(alarmSound) then destroyElement(alarmSound) end end, 8000, 1) end) Blip = {} addEventHandler("onClientResourceStart", resourceRoot, function() for i, player in ipairs(getElementsByType("player")) do Blip[player] = createBlipAttachedTo(player) end end) addEventHandler("onClientPlayerJoin", root, function() Blip[source] = createBlipAttachedTo(source) end) addEventHandler("onClientPlayerQuit", root, function() if isElement(Blip[source]) then destroyElement(Blip[source]) end Blip[source] = nil end) JailCol1 = createColCuboid(1546.53, -1618.5, -90.35, 18.85, 5, 4) JailCol2 = createColCuboid(1546.53, -1640.7, -90.35, 18.85, 6.5, 4) JailCol3 = createColCuboid(1542, -1640.7, -84, 32.7, 6.5, 4) JailCol4 = createColCuboid(1542, -1618.5, -84, 32.7, 5, 4) addEvent("onHacking", true) addEventHandler("onHacking", root, function() if isTimer(hackShowTimer) then killTimer(hackShowTimer) end hackShow = getPlayerName(source) exports.TopBarChat:sendClientMessage(getPlayerName(source).." is hacking the Police PC.", 255, 0, 100, false, 7) hackShowTimer = setTimer(function() hackShow = false end, 7000, 1) end) addEvent("onEscaping", true) addEventHandler("onEscaping", root, function(rsp) if isTimer(escapShowTimer) then killTimer(escapShowTimer) end escapShow = rsp exports.TopBarChat:sendClientMessage(getPlayerName(source).." has escape from the Jail, responsible for his escape "..rsp, 255, 0, 0, false, 7) escapShowTimer = setTimer(function() escapShow = false end, 7000, 1) end) local x, y = guiGetScreenSize() addEventHandler("onClientPreRender", root, function() local Cop = getElementData(localPlayer, "ArresterCop") if isElement(Cop) and not isPedInVehicle(localPlayer) then local copX, copY, copZ = getElementPosition(Cop) local PrisonerX, PrisonerY, PrisonerZ = getElementPosition(localPlayer) local copInt = getElementInterior(Cop) local prisonerInt = getElementInterior(localPlayer) if copInt ~= prisonerInt and not isTimer(intTimer) then intTimer = setTimer(function() end, 3000, 1) triggerServerEvent("warpPosAndIntAndDim", localPlayer, "INT", copInt, copX, copY, copZ) end local copDim = getElementDimension(Cop) local prisonerDim = getElementDimension(localPlayer) if copDim ~= prisonerDim and not isTimer(dimTimer) then dimTimer = setTimer(function() end, 3000, 1) triggerServerEvent("warpPosAndIntAndDim", localPlayer, "DIM", copDim, copX+0.1, copY+0.1, copZ+0.5) end local dis = getDistanceBetweenPoints3D(copX, copY, copZ, PrisonerX, PrisonerY, PrisonerZ) if (dis > 20) then if not isTimer(tooFarCopTimer) then triggerServerEvent("warpPosAndIntAndDim", localPlayer, false, false, copX+1, copY+1, copZ) setControlState("forwards", false) setControlState("walk", false) setControlState("sprint", false) tooFarCopTimer = setTimer(function() end, 3000, 1) end elseif (dis > 10) then setControlState("forwards", true) setControlState("sprint", true) setControlState("walk", false) elseif (dis > 3) then setControlState("forwards", true) setControlState("sprint", false) setControlState("walk", false) elseif (dis > 2) then setControlState("forwards", true) setControlState("sprint", false) setControlState("walk", true) elseif (dis > 1) then setControlState("forwards", false) setControlState("walk", false) setControlState("sprint", false) end setPedRotation(localPlayer, 360-math.deg(math.atan2((copX-PrisonerX), (copY-PrisonerY))) % 360) setCameraTarget(localPlayer) end local HackTime = getElementData(localPlayer, "HackTime") or 0 if HackTime and HackTime > 0 then dxDrawFramedText("Hacking in process: "..HackTime.." sec", x*0.1, y*0.550, x*0.99, y*0.97, tocolor(255, 0, 0, 255), 1.5, "clear", "center") end if hackShow then dxDrawImage(x/2+160, y-110, 100, 100, "hack.png") end if escapShow then dxDrawImage(x/2+160, y-110, 100, 100, "esc.png") end if isElement(alarmSound) then if getElementInterior(localPlayer) ~= 6 then setSoundVolume(alarmSound, 0) else setSoundVolume(alarmSound, 1) end end LegalStatus = getElementData(localPlayer, "LegalStatus") if LegalStatus == "Arrested" or LegalStatus == "Jailed" then setPedWeaponSlot(localPlayer, 0) end JailTime = tonumber(getElementData(localPlayer, "JailTime")) or 0 BailAmount = tonumber(getElementData(localPlayer, "BailAmount")) or 0 if LegalStatus == "Jailed" then if (JailTime) > 0 then dxDrawFramedText("Remaining Time: "..JailTime.." Secs", x*0.875, y*0.911, x*0.99, y*0.97, tocolor(0, 150, 255, 255), 1.5, "clear") end if getKeyBoundToFunction(onJailTimeComplete) then if JailTime <= 0 and BailAmount <= 0 then dxDrawFramedText("Your Jail time finish | Press 'H' to exit the jail.", x*0.875, y*0.911, x*0.99, y*0.97, tocolor(0, 255, 0, 255), 1.5, "clear") else dxDrawFramedText("Your Jail time finish | Press 'H' to pay your bail and exit the jail.", x*0.875, y*0.911, x*0.99, y*0.97, tocolor(255, 150, 0, 255), 1.5, "clear") end end dxDrawFramedText("Bail: $"..BailAmount, x*0.875, y*0.951, x*0.99, y*0.97, tocolor(150, 255, 0, 255), 1.5, "clear") end end) addEventHandler("onClientMarkerHit", root, function(player) if player == localPlayer then if source == sendToJail then triggerServerEvent("sendToJail", localPlayer) destroyElement(sendToJail) end end end) setTimer(function() local team = getPlayerTeam(localPlayer) if team and getTeamName(team) == "Police" then local r, g, b = getTeamColor(team) setPlayerNametagColor(localPlayer, r, g, b) setBlipColor(Blip[localPlayer], r, g, b, 255) jMarker = false for _, p in ipairs(getElementsByType("player")) do if (getElementData(p, "ArresterCop") == localPlayer) then jMarker = true if not isElement(sendToJail) then sendToJail = createMarker(1533, -1676, 11, "cylinder", 5, 255, 0, 255, 150) end break end end if not jMarker and isElement(sendToJail) then destroyElement(sendToJail) end for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) ~= "Police" then local LegalStatus = getElementData(player, "LegalStatus") local wL = getPlayerWantedLevel(player) if LegalStatus == "Arrested" or LegalStatus == "Jailed" then setPlayerNametagColor(player, 0, 0, 0) setBlipColor(Blip[player], 0, 0, 0, 255) elseif wL >= 5 then setPlayerNametagColor(player, 255, 0, 0) setBlipColor(Blip[player], 255, 0, 0, 255) elseif wL >= 3 then setPlayerNametagColor(player, 255, 150, 0) setBlipColor(Blip[player], 255, 150, 0, 255) elseif wL >= 1 then setPlayerNametagColor(player, 255, 255, 0) setBlipColor(Blip[player], 255, 250, 0, 255) elseif wL == 0 then setPlayerNametagColor(player, 255, 255, 255) setBlipColor(Blip[player], 255, 250, 255, 255) end else if team and getTeamName(team) == "Police" then local r, g, b = getTeamColor(team) setPlayerNametagColor(player, r, g, b) setBlipColor(Blip[player], r, g, b, 255) end end end else for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team then local r, g, b = getTeamColor(team) setPlayerNametagColor(player, r, g, b) setBlipColor(Blip[player], r, g, b, 255) end end end if LegalStatus == "Jailed" then if isElementWithinColShape(localPlayer, JailCol1) or isElementWithinColShape(localPlayer, JailCol2) or isElementWithinColShape(localPlayer, JailCol3) or isElementWithinColShape(localPlayer, JailCol4) then if JailTime > 0 then setElementData(localPlayer, "JailTime", JailTime-1) if getKeyBoundToFunction(onJailTimeComplete) then unbindKey("H", "down", onJailTimeComplete) end elseif BailAmount >= 50 then bindJailExit() setElementData(localPlayer, "BailAmount", BailAmount-50) elseif BailAmount < 50 and BailAmount > 0 then setElementData(localPlayer, "BailAmount", 0) bindJailExit() else bindJailExit() end end end end, 1000, 0) function bindJailExit() if not getKeyBoundToFunction(onJailTimeComplete) then bindKey("H", "down", onJailTimeComplete) end end function onJailTimeComplete() if JailTime <= 0 then if BailAmount > 0 then if getPlayerMoney() >= BailAmount then setElementData(localPlayer, "LegalStatus", "Free") unbindKey("H", "down", onJailTimeComplete) setElementPosition(localPlayer, 255.5, 86.5, 1002.5) setElementInterior(localPlayer, 6) triggerServerEvent("takeMoney", localPlayer, BailAmount) setElementData(localPlayer, "BailAmount", false) setElementData(localPlayer, "JailTime", false) else exports.TopBarChat:sendClientMessage("You don't have enough money!", 255, 0, 0, false) end else setElementData(localPlayer, "LegalStatus", "Free") unbindKey("H", "down", onJailTimeComplete) setElementPosition(localPlayer, 255.5, 86.5, 1002.5) setElementInterior(localPlayer, 6) end end end function dxDrawFramedText(message, left, top, width, height, color, scale, sans, alignX, alignY, clip, wordBreak, postGUI, frameColor) if not color then color = tocolor(255, 255, 255, 255) end if not frameColor then frameColor = tocolor(0, 0, 0, 255) end if not scale then scale = 1 end if not sans then sans = "sans" end if not alignX then alignX = "right" end if not alignY then alignY = "top" end if not clip then clip = false end if not wordBreak then wordBreak = false end message1 = string.gsub(message, "#%x%x%x%x%x%x", "") dxDrawText(message, left + 1, top + 1, width + 1, height + 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left + 1, top - 1, width + 1, height - 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left - 1, top + 1, width - 1, height + 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left - 1, top - 1, width - 1, height - 1, frameColor, scale, sans, alignX, alignY, clip, wordBreak, true) dxDrawText(message, left, top, width, height, color, scale, sans, alignX, alignY, clip, wordBreak, true) end function getPlayerWantedLevel(player) local level = getElementData(player, "WantLvl") or 0 return level end --server-- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------ ------ ------|Arrest System|------ ------ ------ ------ ------- ------- ------- ------- ------- ------- ------- ------- ------- local Display = textCreateDisplay() local Text1 = textCreateTextItem("Press H to jail the Arrested.", 0.5, 0.35, "high", 255, 255, 0, 255, 2, "center", "center", 255) textDisplayAddText(Display, Text1) local ArrestTimer = {} addEvent("setWantLevel", true) addEventHandler("setWantLevel", root, function(wL) local LegalStatus = getElementData(source, "LegalStatus") if LegalStatus ~= "Jailed" then setPlayerWantedLevel(source, wL) end end) addEvent("takeMoney", true) addEventHandler("takeMoney", root, function(amount) takePlayerMoney(source, amount) end) addEvent("warpPosAndIntAndDim", true) addEventHandler("warpPosAndIntAndDim", root, function(type, value, x, y ,z) local Cop = getElementData(source, "ArresterCop") if isElement(Cop) and not isPedInVehicle(source) then if type == "INT" then setElementInterior(source, value) elseif type == "DIM" then setElementDimension(source, value) end setElementPosition(source, x, y ,z) end end) addEvent("backMeToJail", true) addEventHandler("backMeToJail", root, function() local gDoors = gDoors[math.random(1, #gDoors-3)] local x, y, z, r = gDoors["JPosX"], gDoors["JPosY"], gDoors["JPosZ"], gDoors["JRot"] setElementPosition(source, x, y, z) setPedRotation(source, r) setElementInterior(source, 6) end) addEventHandler("onPlayerDamage", root, function(attacker, wp) if wp == 41 then return end if attacker and attacker ~= source then if getElementInterior(attacker) == 5 and getElementDimension(attacker) == 5 then return end if (getElementData ( source, "isPlayerKidnapped" )) then return end if getElementType(attacker) == "vehicle" then attacker = getVehicleController(attacker) end local attakerTeam = getPlayerTeam(attacker) local damagedTeam = getPlayerTeam(source) if attakerTeam and damagedTeam then if getTeamName(attakerTeam) ~= "Police" then if getTeamName(damagedTeam) ~= "Police" then local wL = getPlayerWantedLevel(attacker) if wL < 3 then for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) == "Police" then local x1, y1, z1 = getElementPosition(attacker) local x2, y2, z2 = getElementPosition(player) local LegalStatus = getElementData(attacker, "LegalStatus") if LegalStatus ~= "Jailed" and getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) < 15 then setPlayerWantedLevel(attacker, 3) break end end end end else local wL = getPlayerWantedLevel(attacker) local LegalStatus = getElementData(attacker, "LegalStatus") if LegalStatus ~= "Jailed" and wL < 4 then setPlayerWantedLevel(attacker, 4) end end else local wL = getPlayerWantedLevel(source) local LegalStatus = getElementData(source, "LegalStatus") if getTeamName(attakerTeam) == "Police" and wL >= 3 and wp == 3 and not isPedDead(source) and LegalStatus ~= "Arrested" and LegalStatus ~= "Jailed" then setElementData(source, "ArresterCop", attacker) setElementData(source, "LegalStatus", "Arrested") showCursor(source, true) toggleAllControls(source, false, true, false) ArrestTimer[source] = setTimer(sendToJail, 40000, 1, source) if isKeyBound(source, "tab", "down", HackPoliceComputer) then unbindKey(source, "tab", "down", HackPoliceComputer) end if (getElementData(source, "HackTime") or 0) > 0 then setElementData(source, "HackTime", false) setElementFrozen(source, false) exports.TopBarChat:sendClientMessage(getPlayerName(source).." failed to hack the police pc", root, 255, 0, 0) if isTimer(HackTimer) then killTimer(HackTimer) end end exports.TopBarChat:sendClientMessage("You Arrested "..getPlayerName(source).."!", attacker, 0, 255, 0) exports.TopBarChat:sendClientMessage("You have been Arrested by "..getPlayerName(attacker).."!", source, 255, 255, 0) setPedAnimation(source, "ROB_BANK", "SHP_HandsUp_Scr", false, false) setPedAnimation(attacker, "ped", "ARRESTgun", false, false) setTimer(function(arrested, attacker) setPedAnimation(arrested, false) setPedAnimation(attacker, false) end, 2500, 1, source, attacker) end end end end end) addEventHandler("onPlayerWasted", root, function(_, killer) if isKeyBound(source, "tab", "down", HackPoliceComputer) then unbindKey(source, "tab", "down", HackPoliceComputer) end if (getElementData(source, "HackTime") or 0) > 0 then setElementData(source, "HackTime", false) exports.TopBarChat:sendClientMessage(getPlayerName(source).." failed to hack the police pc", root, 255, 0, 0) if isTimer(HackTimer) then killTimer(HackTimer) end end if killer and killer ~= source then local killerTeam = getPlayerTeam(killer) local killedTeam = getPlayerTeam(source) local wL = getPlayerWantedLevel(killer) local LegalStatus = getElementData(killer, "LegalStatus") if killerTeam and killedTeam then if getTeamName(killerTeam) ~= "Police" then if getTeamName(killedTeam) ~= "Police" then if LegalStatus ~= "Jailed" and (wL < 4) then setPlayerWantedLevel(killer, 4) end else if LegalStatus ~= "Jailed" and (wL <= 5) and not (wL > 6) then setPlayerWantedLevel(killer, wL+1) end end else local wL = getPlayerWantedLevel(source) local LegalStatus = getElementData(source, "LegalStatus") if wL >= 3 and LegalStatus ~= "Arrested" and LegalStatus ~= "Jailed" then setElementData(source, "ArresterCop", killer) sendToJail(source) end end end end if not killer or killer == source or getElementType(killer) == "vehicle" then local wL = getPlayerWantedLevel(source) local LegalStatus = getElementData(source, "LegalStatus") if wL >= 4 and LegalStatus ~= "Jailed" then for i, player in ipairs(getElementsByType("player")) do local team = getPlayerTeam(player) if team and getTeamName(team) == "Police" then local x1, y1, z1 = getElementPosition(source) local x2, y2, z2 = getElementPosition(player) if getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) < 40 then sendToJail(source) break end end end end end for i, player in ipairs(getElementsByType("player")) do if (getElementData(player, "ArresterCop") == source) then freePrisoner(player) exports.TopBarChat:sendClientMessage("You escaped from the cop!", player, 255, 255, 0) end end end) addEventHandler("onPlayerTarget", root, function(player) if getControlState(source, "aim_weapon") and player and getElementType(player) == "player" then local targetTeam = getPlayerTeam(player) local sourceTeam = getPlayerTeam(source) local LegalStatus = getElementData(source, "LegalStatus") local x1, y1, z1 = getElementPosition(source) local x2, y2, z2 = getElementPosition(player) if targetTeam and getTeamName(targetTeam) == "Police" and sourceTeam ~= targetTeam then if LegalStatus ~= "Arrested" and LegalStatus ~= "Jailed" then local wp = getPedWeapon(source) local wL = getPlayerWantedLevel(source) if wL < 2 and wp ~= 41 then if getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) < 10 then setPlayerWantedLevel(source, 2) end end end end if sourceTeam and getTeamName(sourceTeam) == "Police" and sourceTeam ~= targetTeam then local LegalStatus = getElementData(player, "LegalStatus") if LegalStatus ~= "Arrested" and LegalStatus ~= "Jailed" then local wL = getPlayerWantedLevel(player) local currentgun = getPedWeapon(source) if getElementInterior(source) == 5 and getElementDimension(source) == 5 then return end if (getElementData ( player, "isPlayerKidnapped" )) then return end if not isPedDead(player) and (currentgun > 19) and (currentgun < 39) and (wL > 2) and (getElementHealth(player) <= 50) and getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) < 3 then setElementData(player, "ArresterCop", source) setElementData(player, "LegalStatus", "Arrested") showCursor(player, true) toggleAllControls(player, false, true, false) ArrestTimer[player] = setTimer(sendToJail, 40000, 1, player) exports.TopBarChat:sendClientMessage("You Arrested "..getPlayerName(player).."!", source, 0, 255, 0) exports.TopBarChat:sendClientMessage("You have been Arrested by "..getPlayerName(source).."!", player, 255, 0, 0) setPedAnimation(player, "ROB_BANK", "SHP_HandsUp_Scr", false, false) setPedAnimation(source, "ped", "ARRESTgun", false, false) if isKeyBound(source, "tab", "down", HackPoliceComputer) then unbindKey(source, "tab", "down", HackPoliceComputer) end if (getElementData(player, "HackTime") or 0) > 0 then setElementData(player, "HackTime", false) setElementFrozen(player, false) exports.TopBarChat:sendClientMessage(getPlayerName(player).." failed to hack the police pc", root, 255, 0, 0) if isTimer(HackTimer) then killTimer(HackTimer) end end setTimer(function(arrested, attacker) setPedAnimation(arrested, false) setPedAnimation(attacker, false) end, 3000, 1, player, source) end end end end end) addEventHandler("onPlayerQuit", root, function() if isTimer(ArrestTimer[source]) then killTimer(ArrestTimer[source]) ArrestTimer[source] = nil end if bribeTimer[source] then bribeTimer[source] = nil end local account = getPlayerAccount(source) if account and not isGuestAccount(account) then local LegalStatus = getElementData(source, "LegalStatus") local BailAmount = getElementData(source, "BailAmount") or 0 local JailTime = getElementData(source, "JailTime") or 0 local wL = getPlayerWantedLevel(source) or 0 if LegalStatus == "Free" or LegalStatus == false then setAccountData(account, "LegalStatus", "Free") setAccountData(account, "BailAmount", false) setAccountData(account, "JailTime", false) setAccountData(account, "wL", wL) elseif LegalStatus == "Arrested" then setAccountData(account, "LegalStatus", "Jailed") setAccountData(account, "BailAmount", wL*1000) setAccountData(account, "JailTime", wL*60) setAccountData(account, "wL", 0) local Cop = getElementData(source, "ArresterCop") if isElement(Cop) then givePlayerMoney(Cop, wL*1000) exports.TopBarChat:sendClientMessage("You earned $"..(wL*1000)..".", Cop, 0, 255, 0) end elseif LegalStatus == "Jailed" then setAccountData(account, "LegalStatus", "Jailed") setAccountData(account, "BailAmount", BailAmount) setAccountData(account, "JailTime", JailTime) setAccountData(account, "wL", 0) end end for i, player in ipairs(getElementsByType("player")) do if (getElementData(player, "ArresterCop") == source) then freePrisoner(player) exports.TopBarChat:sendClientMessage("You escaped from the cop!", player, 255, 255, 0) end end end) addEventHandler("onPlayerLogin", root, function() loadPlayerSetting(source) bindKey(source, "h", "down", ticketAction) end) addEventHandler("onResourceStart", resourceRoot, function() for i, player in ipairs(getElementsByType("player")) do loadPlayerSetting(player) bindKey(player, "h", "down", ticketAction) end end) addEventHandler("onResourceStop", resourceRoot, function() for i, player in ipairs(getElementsByType("player")) do local account = getPlayerAccount(player) if account and not isGuestAccount(account) then local LegalStatus = getElementData(player, "LegalStatus") local BailAmount = getElementData(player, "BailAmount") or 0 local JailTime = getElementData(player, "JailTime") or 0 local wL = getPlayerWantedLevel(player) or 0 if LegalStatus == "Free" or LegalStatus == false then setAccountData(account, "LegalStatus", "Free") setAccountData(account, "BailAmount", false) setAccountData(account, "JailTime", false) setAccountData(account, "wL", wL) elseif LegalStatus == "Arrested" then setAccountData(account, "LegalStatus", "Jailed") setAccountData(account, "BailAmount", wL*1000) setAccountData(account, "JailTime", wL*60) setAccountData(account, "wL", 0) elseif LegalStatus == "Jailed" then setAccountData(account, "LegalStatus", "Jailed") setAccountData(account, "BailAmount", BailAmount) setAccountData(account, "JailTime", JailTime) setAccountData(account, "wL", 0) end end end end) function ticketAction(player) local team = getPlayerTeam(player) local TeamName = team and getTeamName(team) or false if TeamName == "Police" then local target = getPedTarget(player) if target and getControlState(player, "aim_weapon") and getElementType(target) == "player" then local LegalStatus = getElementData(target, "LegalStatus") local wL = getPlayerWantedLevel(target) local TicketStat = getElementData(target, "Ticket") if wL == 2 and LegalStatus ~= "Arrested" and LegalStatus ~= "Jailed" and not TicketStat then local team = getPlayerTeam(target) local TeamName = team and getTeamName(team) or false if TeamName ~= "Police" then exports.TopBarChat:sendClientMessage(getPlayerName(player).." is asking you to pay a ticket $500. press H to pay.", target, 255, 255, 0) exports.TopBarChat:sendClientMessage("You asked "..getPlayerName(target).." to pay a ticket $500.", player, 255, 255, 0) setElementData(target, "Ticket", player) end end end else local TicketStat = getElementData(player, "Ticket") if TicketStat then local LegalStatus = getElementData(player, "LegalStatus") local wL = getPlayerWantedLevel(player) if wL == 2 and LegalStatus ~= "Arrested" and LegalStatus ~= "Jailed" then if getPlayerMoney(player) >= 500 then setPlayerWantedLevel(player, 0) takePlayerMoney(player, 500) setElementData(player, "Ticket", false) exports.TopBarChat:sendClientMessage("You've paid the ticket $500 to the cop "..getPlayerName(TicketStat)..".", player, 0, 255, 0) if isElement(TicketStat) then givePlayerMoney(TicketStat, 500) exports.TopBarChat:sendClientMessage(getPlayerName(player).." has pay his $500 ticket.", TicketStat, 0, 255, 0) end end else setElementData(player, "Ticket", false) end end end end function loadPlayerSetting(player) local account = getPlayerAccount(player) if account and not isGuestAccount(account) then local LegalStatus = getAccountData(account, "LegalStatus") or "Free" local BailAmount = getAccountData(account, "BailAmount") or 0 local JailTime = getAccountData(account, "JailTime") or 0 local wL = getAccountData(account, "wL") or 0 setElementData(player, "LegalStatus", LegalStatus) setElementData(player, "BailAmount", BailAmount) setElementData(player, "JailTime", JailTime) setPlayerWantedLevel(player, wL) end end pModel = { ["598"] = true, ["597"] = true, ["596"] = true, ["523"] = true, ["599"] = true, ["427"] = true } addEventHandler("onPlayerVehicleEnter", root, function(vehicle, seat, jacked) local team = getPlayerTeam(source) if team and getTeamName(team) == "Police" then if jacked then local wL = getPlayerWantedLevel(jacked) local LegalStatus = getElementData(jacked, "LegalStatus") if wL >= 3 and LegalStatus ~= "Arrested" and LegalStatus ~= "Jailed" then setElementData(jacked, "ArresterCop", source) setElementData(jacked, "LegalStatus", "Arrested") showCursor(jacked, true) toggleAllControls(jacked, false, true, false) ArrestTimer[jacked] = setTimer(sendToJail, 40000, 1, jacked) exports.TopBarChat:sendClientMessage("You Arrested "..getPlayerName(jacked).."!", source, 0, 255, 0) exports.TopBarChat:sendClientMessage("You have been Arrested by "..getPlayerName(source).."!", jacked, 255, 255, 0) end end for i, player in ipairs(getElementsByType("player")) do if (getElementData(player, "ArresterCop") == source) then local passengers = getVehicleMaxPassengers(vehicle) for seat = 0, passengers do if seat > 0 and not getVehicleOccupant(vehicle, seat) then warpPedIntoVehicle(player, vehicle, seat) break end end end end else if pModel[getElementModel(vehicle)] then setPlayerWantedLevel(source, 4) end end end) addEventHandler("onVehicleStartEnter", root, function(player, seat, driver) if driver and seat == 0 then local policeTeam = getTeamFromName("Police") if getPlayerTeam(driver) == policeTeam and getPlayerTeam(player) == policeTeam then cancelEvent() end end end) addEventHandler("onPlayerVehicleExit", root, function(vehicle) local team = getPlayerTeam(source) if team and getTeamName(team) == "Police" then for i, player in ipairs(getElementsByType("player")) do if (getElementData(player, "ArresterCop") == source) then removePedFromVehicle(player) end end end end) function freePrisoner(player) setElementData(player, "ArresterCop", false) setElementData(player, "LegalStatus", "Free") showCursor(player, false) setControlState(player, "sprint", false) setControlState(player, "walk", false) setControlState(player, "forwards", false) toggleAllControls(player, true) if isTimer(ArrestTimer[player]) then killTimer(ArrestTimer[player]) ArrestTimer[player] = nil end end addCommandHandler("free", function(player) local team = getPlayerTeam(player) if team and getTeamName(team) == "Police" then for i, p in ipairs(getElementsByType("player")) do if (getElementData(p, "ArresterCop") == player) then freePrisoner(p) exports.TopBarChat:sendClientMessage("You freed "..getPlayerName(p), player, 255, 255, 0) exports.TopBarChat:sendClientMessage("The cop "..getPlayerName(player).." has freed you!", p, 255, 255, 0) end end end end) function sendToJail(player, i) local Cop = getElementData(player, "ArresterCop") if not isPedDead(player) then local Index = i or math.random(1, #gDoors-3) local x, y, z, r = gDoors[Index]["JPosX"], gDoors[Index]["JPosY"], gDoors[Index]["JPosZ"], gDoors[Index]["JRot"] if isPedInVehicle(player) then removePedFromVehicle(player) end setElementPosition(player, x, y, z) setPedRotation(player, r) setElementInterior(player, 6) end setElementData(player, "ArresterCop", false) setElementData(player, "LegalStatus", "Jailed") local wL = getPlayerWantedLevel(player) if isElement(Cop) then givePlayerMoney(Cop, wL*1000) exports.TopBarChat:sendClientMessage("You earned $"..(wL*1000)..".", Cop, 0, 255, 0) end setElementData(player, "JailTime", wL*60) setElementData(player, "BailAmount", wL*1000) showCursor(player, false) toggleAllControls(player, true) setControlState(player, "sprint", false) setControlState(player, "walk", false) setControlState(player, "forwards", false) setPlayerWantedLevel(player, 0) if isTimer(ArrestTimer[player]) then killTimer(ArrestTimer[player]) ArrestTimer[player] = nil end end addEvent("sendToJail", true) addEventHandler("sendToJail", root, function() for _, p in ipairs(getElementsByType("player")) do if (getElementData(p, "ArresterCop") == source) then sendToJail(p) end end end) addEventHandler("onPlayerSpawn", root, function() local LegalStatus = getElementData(source, "LegalStatus") if LegalStatus == "Jailed" then local gDoors = gDoors[math.random(1, #gDoors-3)] local x, y, z, r = gDoors["JPosX"], gDoors["JPosY"], gDoors["JPosZ"], gDoors["JRot"] setTimer (setElementPosition, 2000, 1, source, x, y, z) setTimer (setElementInterior, 2000, 1, source, 6) setTimer (setElementDimension, 2000, 1, source, 0) setTimer (setPedRotation, 2000, 1, source, r) end end) bribeTable = {} bribeTimer = {} function bribe_acc(player, cmd) if getElementData(player, "MissionProtection") or getElementData(player, "MissionWarProtection") or getElementData(player, "MissionStreet") then return end if cmd == "sop" then if not isTimer(bribeTimer[player]) and (getElementData(player, "HackTime") or 0) <= 0 then local LegalStatus = getElementData(player, "LegalStatus") local wL = getPlayerWantedLevel(player) local Bail = 0 local JailTime = 0 if LegalStatus ~= "Arrested" then if wL > 2 then Bail= wL*1000 JailTime = wL*60 elseif LegalStatus == "Jailed" then Bail= getElementData(player, "BailAmount") or 0 JailTime = getElementData(player, "JailTime") or 0 end if JailTime > 0 and Bail > 0 then if getPlayerMoney(player) >= Bail then for i, p in ipairs(getElementsByType("player")) do local team = getPlayerTeam(p) if team and getTeamName(team) == "Police" then local x1, y1, z1 = getElementPosition(p) local x2, y2, z2 = getElementPosition(player) if getDistanceBetweenPoints3D(x1, y1, z1, x2, y2, z2) <= 35 then if not bribeTable[p] then bribeTable[p] = {} end if not bribeTable[p][player] then bribeTable[p][player] = Bail exports.TopBarChat:sendClientMessage(getPlayerName(player).." is offering you bribe $"..Bail, p, 0, 255, 0) exports.TopBarChat:sendClientMessage("You offered bribe $"..Bail.." to the cop "..getPlayerName(p), player, 0, 255, 0) bribeTimer[player] = setTimer(function(player) bribeTimer[player] = nil end, 3000, 1, player) break end end end end if not isTimer(bribeTimer[player]) then exports.TopBarChat:sendClientMessage("There no cops near you.", player, 255, 255, 0) end else exports.TopBarChat:sendClientMessage("You don't have enough money!", player, 255, 0, 0) end end end else exports.TopBarChat:sendClientMessage("Please wait 3 sec to be able to bribe again.", player, 255, 255, 0) end elseif cmd == "ok" then if bribeTable[player] then for p, Bail in pairs(bribeTable[player]) do local LegalStatus = getElementData(p, "LegalStatus") local wL = getPlayerWantedLevel(p) if not isElement(p) or getPlayerMoney(p) < Bail or (LegalStatus == "Arrested" and LegalStatus == "Free" and LegalStatus == false and wL < 3) or (getElementData(p, "HackTime") or 0) > 0 then for i, police in ipairs(getElementsByType("player")) do if bribeTable[police] then bribeTable[police][p] = nil end end else givePlayerMoney(player, Bail) takePlayerMoney(p, Bail) exports.TopBarChat:sendClientMessage("You accepted bribe from "..getPlayerName(p).." for $"..Bail, player, 0, 255, 0) exports.TopBarChat:sendClientMessage("The cop "..getPlayerName(player).." has accepted your bribe $"..Bail, p, 0, 255, 0) for i, police in ipairs(getElementsByType("player")) do if bribeTable[police] then bribeTable[police][p] = nil end end setElementData(p, "JailTime", 0) setElementData(p, "BailAmount", 0) setPlayerWantedLevel(p, 0) break end end end end end addCommandHandler("sop", bribe_acc) addCommandHandler("ok", bribe_acc) HackMarker = createMarker(1585.5, -1614.4, -84, "cylinder", 1.85, 255, 0, 0, 100) setElementInterior(HackMarker, 6) addEventHandler("onMarkerHit", HackMarker, function(player) if getElementType(player) == "player" then local team = getPlayerTeam(player) if team and getTeamName(team) ~= "Police" then if not isKeyBound(player, "tab", "down", HackPoliceComputer) then bindKey(player, "tab", "down", HackPoliceComputer) end end end end) addEventHandler("onMarkerLeave", HackMarker, function(player) if getElementType(player) == "player" then local team = getPlayerTeam(player) if team and getTeamName(team) ~= "Police" then if isKeyBound(player, "tab", "down", HackPoliceComputer) then unbindKey(player, "tab", "down", HackPoliceComputer) end if (getElementData(player, "HackTime") or 0) > 0 then setElementData(player, "HackTime", false) exports.TopBarChat:sendClientMessage(getPlayerName(player).." failed to hack the police pc", root, 255, 0, 0) if isTimer(HackTimer) then killTimer(HackTimer) end end end end end) function HackPoliceComputer(player) local team = getPlayerTeam(player) if team and getTeamName(team) ~= "Police" then if not isTimer(HackTimer) then if not isTimer(HackResetTimer) then setElementData(player, "HackTime", 50) --exports.TopBarChat:sendClientMessage(getPlayerName(player).." is hacking the police pc.", root, 0, 255, 255) triggerClientEvent(root, "onHacking", player) setPlayerWantedLevel(player, 6) setPedRotation(player, 270) setElementPosition(player, 1585.5, -1614.49, -83.5) setElementFrozen(player, true) setPedAnimation(player, "INT_OFFICE", "OFF_Sit_Type_Loop", -1, true, false) HackTimer = setTimer(function(player) local currentTime = getElementData(player, "HackTime") or 0 if currentTime <= 0 then killTimer(HackTimer) setElementData(player, "HackTime", false) triggerClientEvent(root, "startAlarm", root) HackResetTimer = setTimer(function() end, 1800000, 1) HackedComputerTimer = setTimer(function() end, 35000, 1) openAllJailDoors() exports.TopBarChat:sendClientMessage(getPlayerName(player).." has hacked the police pc and all jail is now opened.", root, 255, 0, 100) givePlayerMoney(player, 10000) setElementFrozen(player, false) setPedAnimation(player, false) else setElementData(player, "HackTime", currentTime - 1) end end, 1000, 0, player) else exports.TopBarChat:sendClientMessage("The pc already hacked before, try again later.", player, 255, 255, 0) end end end end function openAllJailDoors() for i, door in pairs(Doors) do local i = getElementData(door, "Index") setElementData(door, "Stat", "Opened", false) moveObject(door, 1500, gDoors[i]["oPosX"], gDoors[i]["oPosY"], gDoors[i]["oPosZ"]) setElementData(door, "LastOpen", false, false) if isTimer(moveGtaTimer[door]) then killTimer(moveGtaTimer[door]) moveGtaTimer[door] = nil end end end ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- Doors = {} gDoors = { {Model = 2930, oPosX = 1560.6, oPosY = -1634.3800048828, oPosZ = -87.699996948242, Rot = 90, cPosX = 1562.3000488281, cPosY = -1634.3800048828, cPosZ = -87.699996948242, JPosX = 1563.3, JPosY = -1637.3, JPosZ = -89.3, JRot = 0}, {Model = 2930, oPosX = 1556, oPosY = -1634.3800048828, oPosZ = -87.699996948242, Rot = 90, cPosX = 1557.6999511719, cPosY = -1634.3800048828, cPosZ = -87.699996948242, JPosX = 1558.5, JPosY = -1637, JPosZ = -89.3, JRot = 0}, {Model = 2930, oPosX = 1551, oPosY = -1634.3800048828, oPosZ = -87.699996948242, Rot = 90, cPosX = 1552.9000244141, cPosY = -1634.3800048828, cPosZ = -87.699996948242, JPosX = 1553.7, JPosY = -1637, JPosZ = -89.3, JRot = 0}, {Model = 2930, oPosX = 1549.8000488281, oPosY = -1634.3800048828, oPosZ = -87.699996948242, Rot = 90, cPosX = 1548.1, cPosY = -1634.3800048828, cPosZ = -87.699996948242, JPosX = 1549, JPosY = -1637, JPosZ = -89.3, JRot = 0}, {Model = 2930, oPosX = 1549.8, oPosY = -1618.3000488281, oPosZ = -87.699996948242, Rot = 90, cPosX = 1548.1999511719, cPosY = -1618.3000488281, cPosZ = -87.699996948242, JPosX = 1549, JPosY = -1616, JPosZ = -89.3, JRot = 180}, {Model = 2930, oPosX = 1554.6, oPosY = -1618.3000488281, oPosZ = -87.699996948242, Rot = 90, cPosX = 1553, cPosY = -1618.3000488281, cPosZ = -87.699996948242, JPosX = 1553.5, JPosY = -1616, JPosZ = -89.3, JRot = 180}, {Model = 2930, oPosX = 1559.3, oPosY = -1618.3000488281, oPosZ = -87.699996948242, Rot = 90, cPosX = 1557.6, cPosY = -1618.3000488281, cPosZ = -87.699996948242, JPosX = 1558, JPosY = -1616, JPosZ = -89.3, JRot = 180}, {Model = 2930, oPosX = 1560.7, oPosY = -1618.3000488281, oPosZ = -87.699996948242, Rot = 90, cPosX = 1562.4, cPosY = -1618.3000488281, cPosZ = -87.699996948242, JPosX = 1563, JPosY = -1616, JPosZ = -89.3, JRot = 180}, {Model = 2930, oPosX = 1542, oPosY = -1618.2700195313, oPosZ = -81.400001525879, Rot = 90, cPosX = 1543.5, cPosY = -1618.2700195313, cPosZ = -81.400001525879, JPosX = 1544.2, JPosY = -1615.9, JPosZ = -83, JRot = 180}, {Model = 2930, oPosX = 1549.8, oPosY = -1618.2700195313, oPosZ = -81.400001525879, Rot = 90, cPosX = 1548.2, cPosY = -1618.2700195313, cPosZ = -81.400001525879, JPosX = 1549, JPosY = -1615.9, JPosZ = -83, JRot = 180}, {Model = 2930, oPosX = 1551.3, oPosY = -1618.2700195313, oPosZ = -81.400001525879, Rot = 90, cPosX = 1552.9, cPosY = -1618.2700195313, cPosZ = -81.400001525879, JPosX = 1553.5, JPosY = -1615.9, JPosZ = -83, JRot = 180}, {Model = 2930, oPosX = 1556, oPosY = -1618.2700195313, oPosZ = -81.400001525879, Rot = 90, cPosX = 1557.6, cPosY = -1618.2700195313, cPosZ = -81.400001525879, JPosX = 1558.5, JPosY = -1615.9, JPosZ = -83, JRot = 180}, {Model = 2930, oPosX = 1560.7, oPosY = -1618.2700195313, oPosZ = -81.400001525879, Rot = 90, cPosX = 1562.3, cPosY = -1618.2700195313, cPosZ = -81.400001525879, JPosX = 1563, JPosY = -1615.9, JPosZ = -83, JRot = 180}, {Model = 2930, oPosX = 1565.5, oPosY = -1618.2700195313, oPosZ = -81.400001525879, Rot = 90, cPosX = 1566.87, cPosY = -1618.2700195313, cPosZ = -81.400001525879, JPosX = 1567, JPosY = -1615.9, JPosZ = -83, JRot = 180}, {Model = 2930, oPosX = 1570, oPosY = -1618.2700195313, oPosZ = -81.400001525879, Rot = 90, cPosX = 1571.8, cPosY = -1618.2700195313, cPosZ = -81.400001525879, JPosX = 1572.5, JPosY = -1615.9, JPosZ = -83, JRot = 180}, {Model = 2930, oPosX = 1570, oPosY = -1634.3000488281, oPosZ = -81.400001525879, Rot = 90, cPosX = 1571.6999511719, cPosY = -1634.3000488281, cPosZ = -81.400001525879, JPosX = 1572.5, JPosY = -1637, JPosZ = -83, JRot = 0}, {Model = 2930, oPosX = 1565.4, oPosY = -1634.3000488281, oPosZ = -81.400001525879, Rot = 90, cPosX = 1567, cPosY = -1634.3000488281, cPosZ = -81.400001525879, JPosX = 1568, JPosY = -1637, JPosZ = -83, JRot = 0}, {Model = 2930, oPosX = 1564, oPosY = -1634.3000488281, oPosZ = -81.400001525879, Rot = 90, cPosX = 1562.3, cPosY = -1634.3000488281, cPosZ = -81.400001525879, JPosX = 1563, JPosY = -1637, JPosZ = -83, JRot = 0}, {Model = 2930, oPosX = 1559.2, oPosY = -1634.3000488281, oPosZ = -81.400001525879, Rot = 90, cPosX = 1557.6, cPosY = -1634.3000488281, cPosZ = -81.400001525879, JPosX = 1558.5, JPosY = -1637, JPosZ = -83, JRot = 0}, {Model = 2930, oPosX = 1554.5, oPosY = -1634.3000488281, oPosZ = -81.400001525879, Rot = 90, cPosX = 1553, cPosY = -1634.3000488281, cPosZ = -81.400001525879, JPosX = 1553.5, JPosY = -1637, JPosZ = -83, JRot = 0}, {Model = 2930, oPosX = 1546.6, oPosY = -1634.3000488281, oPosZ = -81.400001525879, Rot = 90, cPosX = 1548.1, cPosY = -1634.3000488281, cPosZ = -81.400001525879, JPosX = 1549, JPosY = -1637, JPosZ = -83, JRot = 0}, {Model = 2930, oPosX = 1545, oPosY = -1634.3000488281, oPosZ = -81.400001525879, Rot = 90, cPosX = 1543.4, cPosY = -1634.3000488281, cPosZ = -81.400001525879, JPosX = 1544.5, JPosY = -1637, JPosZ = -83, JRot = 0}, {Model = 2930, oPosX = 1575.2, oPosY = -1636.1999511719, oPosZ = -87.699996948242, Rot = 0, cPosX = 1575.2001953125, cPosY = -1634.7001953125, cPosZ = -87.699996948242}, {Model = 2930, oPosX = 1570.4, oPosY = -1633.5999755859, oPosZ = -87.699996948242, Rot = 90, cPosX = 1572, cPosY = -1633.5999755859, cPosZ = -87.699996948242}, {Model = 980, oPosX = 1538.5999755859, oPosY = -1627.44, oPosZ = -85.1, Rot = 90, cPosX = 1538.5999755859, cPosY = -1627.44, cPosZ = -87.7}, } EscpJail1 = createColCuboid(1575.4, -1637, -90.35, 1, 3, 2.5) EscpJail2 = createColCuboid(1537, -1629.5, -90.35, 1, 4, 2.5) for i, door in ipairs(gDoors) do if i == #gDoors then model = 980 gate = createObject(door["Model"], door["cPosX"], door["cPosY"], door["cPosZ"], 0, 0, door["Rot"]) table.insert(Doors, gate) marker = createMarker(door["cPosX"], door["cPosY"], door["cPosZ"]-3, "cylinder", 1.85, 255, 0, 0, 0) setElementInterior(marker, 6) setElementInterior(gate, 6) setElementData(EscpJail2, "Door", gate) else gate = createObject(door["Model"], door["cPosX"], door["cPosY"], door["cPosZ"], 0, 0, door["Rot"]) table.insert(Doors, gate) marker = createMarker(door["Rot"] == 90 and door["cPosX"]+1 or door["cPosX"], door["Rot"] == 90 and door["cPosY"] or door["cPosY"]-1, door["cPosZ"]-3, "cylinder", 1.85, 255, 0, 0, 0) setElementInterior(marker, 6) setElementInterior(gate, 6) end setElementData(marker, "Door", gate, false) setElementData(gate, "Index", i, false) setElementData(gate, "Stat", "Closed", false) if i == 23 then setElementData(EscpJail1, "Door", gate) end end addEventHandler("onColShapeLeave", root, function(player) if getElementType(player) == "player" then if source == EscpJail1 then local LegalStatus = getElementData(player, "LegalStatus") if LegalStatus == "Jailed" then local door = getElementData(source, "Door") local rsp = getElementData(door, "LastOpen") or "Unknown" if rsp then for i, p in ipairs(getPlayersInTeam(getTeamFromName("Police"))) do triggerClientEvent(p, "onEscaping", player, rsp) triggerClientEvent(p, "startAlarm", player) end end exports.TopBarChat:sendClientMessage("You escape from the Jail!!", player, 255, 255, 0) setElementData(player, "LegalStatus", "Free") setElementData(player, "JailTime", false) setElementData(player, "BailAmount", false) setPlayerWantedLevel(player, 6) local rP = getPlayerFromName(rsp) if rP then takePlayerMoney(rP, 2500) end end elseif source == EscpJail2 then local LegalStatus = getElementData(player, "LegalStatus") if LegalStatus == "Jailed" then local door = getElementData(source, "Door") local rsp = getElementData(door, "LastOpen") or "Unknown" if rsp then for i, p in ipairs(getPlayersInTeam(getTeamFromName("Police"))) do triggerClientEvent(p, "onEscaping", player, rsp) triggerClientEvent(p, "startAlarm", player) end end exports.TopBarChat:sendClientMessage("You escape from the Jail!!", player, 255, 255, 0) setElementData(player, "LegalStatus", "Free") setElementData(player, "JailTime", false) setElementData(player, "BailAmount", false) setPlayerWantedLevel(player, 6) local rP = getPlayerFromName(rsp) if rP then takePlayerMoney(rP, 2500) end end end end end) local EnterPoliceMarker1 = createMarker(1555, -1675.7, 15.2, "cylinder", 1.2, 255, 150, 0, 150) local EnterPoliceMarker2 = createMarker(1560.6, -1691, 4.9, "cylinder", 1.2, 255, 150, 0, 150) local ExitPoliceMarker = createMarker(246.8, 63, 1002.65, "cylinder", 1.2, 255, 150, 0, 150) -- local EnterJailMarker1 = createMarker(242.8, 66.42, 1002.65, "cylinder", 1.2, 255, 150, 0, 150) local EnterJailMarker2 = createMarker(246.33, 87.45, 1002.65, "cylinder", 1.2, 255, 150, 0, 150) -- local ExitJailMarker1 = createMarker(1545.5, -1652.3, -90.5, "cylinder", 1.5, 255, 150, 0, 150) local ExitJailMarker2 = createMarker(1586.265, -1638.9, -84, "cylinder", 1.5, 255, 150, 0, 150) setElementInterior(ExitPoliceMarker, 6) setElementInterior(EnterJailMarker1, 6) setElementInterior(EnterJailMarker2, 6) setElementInterior(ExitJailMarker1, 6) setElementInterior(ExitJailMarker2, 6) createBlipAttachedTo(EnterPoliceMarker1, 30) addEventHandler("onMarkerHit", resourceRoot, function(player) if getElementType(player) == "player" and not isPedInVehicle(player) then if source == EnterPoliceMarker1 then setElementInterior(player, 6, 246.8, 65, 1003) elseif source == EnterPoliceMarker2 and getPlayerTeam(player) == getTeamFromName("Police") then setElementInterior(player, 6, 217, 78, 1005) elseif source == ExitPoliceMarker then setElementInterior(player, 0, 1552.7, -1675.4, 16.2) elseif source == EnterJailMarker1 then setElementPosition(player, 1544, -1652.3, -90) elseif source == EnterJailMarker2 then setElementPosition(player, 1584.265, -1638.9, -83) elseif source == ExitJailMarker1 then setElementPosition(player, 244.5, 66.42, 1003) elseif source == ExitJailMarker2 then setElementPosition(player, 246.33, 85.5, 1003) else local door = getElementData(source, "Door") if door and getElementType(door) == "object" then bindKey(player, "tab", "down", onKeyTab, door) local index = getElementData(door, "Index") if index < #gDoors-3 then for i, p in ipairs(getElementsByType("player")) do if (getElementData(p, "ArresterCop") == player) then bindKey(player, "H", "down", onKeyH, door) textDisplayAddObserver(Display, player) break end end end end end end end) addEventHandler("onMarkerLeave", resourceRoot, function(player) if getElementType(player) == "player" then local door = getElementData(source, "Door") if door and getElementType(door) == "object" then unbindKey(player, "tab", "down", onKeyTab, door) unbindKey(player, "H", "down", onKeyH, door) textDisplayRemoveObserver(Display, player) end end end) function onKeyTab(player, key, keyState, door) local Team = getPlayerTeam(player) if Team and Team == getTeamFromName("Police") then MoveGate(door, player) end end function onKeyH(player, key, keyState, door) local Team = getPlayerTeam(player) if Team and Team == getTeamFromName("Police") then local i = getElementData(door, "Index") for _, p in ipairs(getElementsByType("player")) do if (getElementData(p, "ArresterCop") == player) then sendToJail(p, i) end end end end moveGtaTimer = {} function MoveGate(door, player) local i = getElementData(door, "Index") local Stat = getElementData(door, "Stat") if isTimer(HackedComputerTimer) then return end if (Stat == "Opened") then moveObject(door, 1500, gDoors[i]["cPosX"], gDoors[i]["cPosY"], gDoors[i]["cPosZ"]) setElementData(door, "Stat", "Closed", false) --setTimer(setElementData, 1500, 1, door, "LastOpen", false, false) if isTimer(moveGtaTimer[door]) then killTimer(moveGtaTimer[door]) moveGtaTimer[door] = nil end elseif (Stat == "Closed") then moveObject(door, 1500, gDoors[i]["oPosX"], gDoors[i]["oPosY"], gDoors[i]["oPosZ"]) setElementData(door, "Stat", "Opened", false) if player then setElementData(door, "LastOpen", getPlayerName(player), false) end if isTimer(moveGtaTimer[door]) then killTimer(moveGtaTimer[door]) moveGtaTimer[door] = nil end if i > #gDoors-3 then moveGtaTimer[door] = setTimer(function(door, i) moveObject(door, 1500, gDoors[i]["cPosX"], gDoors[i]["cPosY"], gDoors[i]["cPosZ"]) setElementData(door, "Stat", "Closed", false) moveGtaTimer[door] = nil --setTimer(setElementData, 1500, 1, door, "LastOpen", false, false) end, 5000, 1, door, i) end end end policeDoor = createObject(968, 1544.699, -1630.798, 13.100, 0, 90, 90) col = createMarker(1544.4, -1626.8, 12, "cylinder", 10, 0, 0, 0, 0) moving = false closed = true movetime = 968 function openDoor(player) if getElementType(player) == "player" then if getPlayerTeam(player) ~= getTeamFromName("Police") then return end if not moving and closed then moveObject(policeDoor, 968, 1544.699, -1630.798, 13.100, 0, -90) moving = true closed = false setTimer(function() moving = false end, movetime, 1) end end end addEventHandler("onMarkerHit", col, openDoor) function closeDoor(player) if getElementType(player) == "player" then if getPlayerTeam(player) ~= getTeamFromName("Police") then return end if not moving and not closed then moveObject(policeDoor, 968, 1544.699, -1630.798, 13.100, 0, 90) moving = true closed = true setTimer(function() moving = false end, movetime, 1) end end end addEventHandler("onMarkerLeave", col, closeDoor) setPlayerWantedLevel_ = setPlayerWantedLevel function setPlayerWantedLevel(player, level) local stat = setPlayerWantedLevel_(player, level) if stat then setElementData(player, "WantLvl", level) end return stat end هاهي الاكواد المشكل يعمل بالتيم وليس القروب و التيم لما اخرج من السيرفر وارجع لا يحفظ ممك نعدلو يبقى بالقروب وازاي نعدلو
  21. ربي يعطيك ماتتمنا نجح معي والله كنت افكر كتيرا كنت اظنه سورس كبير ولكن بهده البساطة راح افهمو بالتفصيل شكرا على الصبر معي
  22. الله يحفظك ياغالي راح احاول
  23. جربتو الصراحة روعة وكن لما حطيت نفس الاحداتيات المربع تبع الرادار ظهر ولكن الحماية ظهرت في مكان واحد وليس كل المربع لم افهم خطأ فالاحداتيات او طريقة وضعها createRadarArea(1214.47949,-1639.02600,80,-80, 0, 255, 0, 175) pos = createColRectangle( 1214.47949,-1639.02600,80.0,-80.0 ) addEventHandler("onColShapeHit", pos, function (hl, md) local grp = getElementData(hl, "Group") == "[SWAT]" if isElement(hl) and getElementType(hl) == "player" and md and not grp then killPed ( hl ) end end)
  24. ربي يعيشك خويا راح اجربو
×
×
  • Create New...