Jump to content

مشكلة ممكن مساعدة لو سمحتم


Recommended Posts

سلام عليكم هذا jail

فية مشكلة

فى ان الوقت يشتغل تمام وى كل شىء بس المشكلة ان ينقص من صحة اللعب ما اعرف ليش

client

local sx, sy = guiGetScreenSize() 
  
function onPlayerEnterPrison(time) 
    addEventHandler("onClientRender", root, drawPrisonText) 
    prisonTextActive = true 
    prisonTime = time or 0 
    local function decreasePrisonTime() 
        prisonTime = prisonTime - 1 
        if (prisonTime < 1) then 
            if (prisonTextActive) then removeEventHandler("onClientRender", root, drawPrisonText) end 
            prisonTextActive = false 
        end 
    end 
    decreaseTimer = setTimer(decreasePrisonTime, 1000, time) 
end 
addEvent("CSFprison.onPlayerEnterPrison", true) 
addEventHandler("CSFprison.onPlayerEnterPrison", root, onPlayerEnterPrison) 
  
function onPlayerReleased() 
    if (prisonTextActive) then removeEventHandler("onClientRender", root, drawPrisonText) end 
end 
addEvent("CSFprison.onPlayerReleased", true) 
addEventHandler("CSFprison.onPlayerReleased", root, onPlayerReleased) 
  
function drawPrisonText() 
    local color 
    if (prisonTime < 80) then 
        color = tocolor(0, 250, 0, 250) 
    elseif (prisonTime >= 80 and prisonTime <= 150) then 
        color = tocolor(250, 250, 0, 250) 
    elseif (prisonTime > 150) then 
        color = tocolor(250, 0, 0, 250) 
    end 
    dxDrawText(prisonTime.." Seconds Remaining", (sx / 1920) * 1523.0, (sy / 1080) * 968.0, (sx / 1920) * 1795.0, (sy / 1080) * 1033.0, color, (sx / 1920) * 1, "bankgothic", "left", "center", false, false, false) 
    exports.CILhelp:modTextBar("isPlayerJailled", prisonTime.." Seconds Remaining", 255, 255, 255) 
end 
  
  
function isPlayerJailed(player) 
    if (player and isElement(player)) then 
        if (prisoner[player]) then  
            return true 
        else 
            return false 
        end 
    end 
end 
  
addEvent("enableGodMode", true) 
addEvent("disableGodMode", true) 
addEventHandler ("enableGodMode", getRootElement(),  
function() 
  addEventHandler ("onClientPlayerDamage", getRootElement(), cancelEventEvent) 
end) 
  
addEventHandler ("disableGodMode", getRootElement(),  
function() 
  removeEventHandler ("onClientPlayerDamage", getRootElement(), cancelEventEvent) 
end) 
  
function cancelEventEvent () cancelEvent() end  

server

local prisoner = {} 
local positions =    
{ 
    {922, -2428, 5701}, 
    {922, -2444, 5701}, 
    {916, -2444, 5700.3}, 
    {916, -2430, 5700.3}, 
} 
  
  
function sendPlayerToPrison(player, jailTime) 
    if (not isElement(player)) then return end 
    local jailTime = jailTime / 1000 
    local x, y, z = getElementPosition(player) 
    if (isPedInVehicle(player)) then 
        removePedFromVehicle(player) 
    end 
    toggleControl(player, "fire", false) 
    toggleControl(player, "jump", false) 
    setPedWeaponSlot(player, 0) 
    triggerClientEvent (player, "enableGodMode") 
    prisoner[player] = {} 
    setElementData(player,"prison","yes") 
    prisoner[player][1] = getZoneName(x, y, z, true) 
    prisoner[player][2] = jailTime 
    setTimer(triggerClientEvent, 500, 1, player, "CSFprison.onPlayerEnterPrison", player, jailTime) 
    setElementPosition(player, unpack(positions[math.random(#positions)])) 
    setElementDimension(player, 0) 
    setElementInterior(player, 0) 
    local function updateTheTime(player) 
        if (prisoner[player] and prisoner[player][2]) then 
            prisoner[player][2] = prisoner[player][2] - 1 
            if (prisoner[player][2] < 1) then 
                releasePlayerFromPrison(player) 
            end 
        end 
    end 
    prisoner[player][3] =  setTimer(updateTheTime, 1000, jailTime, player) 
end 
  
function isPlayerJailed(player) 
    if (player and isElement(player)) then 
        if (prisoner[player]) then  
            return true 
        else 
            return false 
        end 
    end 
end 
  
function saveTimeOnQuit() 
    local account = getPlayerAccount(source) 
    if (not account) then return end 
    if (prisoner[source] and prisoner[source][2] > 1) then 
        setAccountData(account, "CSFprison.prisonTime", prisoner[source][2]) 
    end 
end 
addEventHandler("onPlayerQuit", root, saveTimeOnQuit, true, "high") 
  
function saveTimeOnQLogout(account) 
    if (prisoner[source] and prisoner[source][2] > 1) then 
        setAccountData(account, "CSFprison.prisonTime", prisoner[source][2]) 
    end 
end 
addEventHandler("onPlayerLogout", root, saveTimeOnQLogout) 
  
function sendPlayerToJailOnStart() 
    for index, player in pairs(getElementsByType("player")) do 
        if (not isGuestAccount(getPlayerAccount(player))) then 
            local account = getPlayerAccount(player) 
            local prisontime = getAccountData(account, "CSFprison.prisonTime") or 0 
            local zone = getAccountData(account, "CSFprison.zone") 
            if (tonumber(prisontime) > 1) then 
                sendPlayerToPrison(player, prisontime * 1000) 
            end              
        end 
    end 
end 
addEventHandler("onResourceStart", resourceRoot, sendPlayerToJailOnStart) 
  
function saveTimeOnResourceStop() 
    for index, player in pairs(getElementsByType("player")) do 
        if (not isGuestAccount(getPlayerAccount(player)) and prisoner[player] and prisoner[player][2] > 1) then 
            local account = getPlayerAccount(player) 
            setAccountData(account, "CSFprison.zone", prisoner[player][1]) 
            setAccountData(account, "CSFprison.prisonTime", prisoner[player][2]) 
        end 
    end 
end 
addEventHandler("onResourceStop", resourceRoot, saveTimeOnResourceStop) 
  
function onPlayerLogin() 
    local account = getPlayerAccount(source) 
    local prisontime = getAccountData(account, "CSFprison.prisonTime") or 0 
    if (tonumber(prisontime) > 1) then 
        setTimer(sendPlayerToPrison, 1000, 1, source, prisontime * 1000) 
    end 
end 
addEventHandler("onPlayerLogin", root, onPlayerLogin) 
  
function releasePlayerFromPrison(player) 
    if (not isElement(player)) then return end 
    if (prisoner[player]) then 
        if (prisoner[player][3]) then 
            if (isTimer(prisoner[player][3])) then 
                killTimer(prisoner[player][3]) 
            end 
        end 
        toggleControl(player, "fire", true) 
        toggleControl(player, "jump", true) 
        triggerClientEvent (player, "disableGodMode") 
        fadeCamera(player, false, 0) 
        setTimer(fadeCamera, 800, 1, player, true) 
        exports.CSFtexts:output("You have been released from prison", player, 0, 245, 185) 
        local zone = prisoner[player][1] 
        if (zone == "Unknown") then 
            setElementPosition(player, 1796.82, -1590.14, 13) 
            zone = getAccountData(getPlayerAccount(player), "CSFprison.zone") 
        end 
        if (zone == "Los Santos") then 
            setElementPosition(player, 2750.82, -1451.14, 30) 
        elseif (zone == "San Fierro") then 
            setElementPosition(player, -1631.78, 678.41, 7) 
        elseif (zone == "Las Venturas") then 
            setElementPosition(player, 2287.54, 2430.20, 10) 
        end 
        removeElementData(player,"prison") 
        triggerClientEvent(player, "CIThelp.mtb", player, "isPlayerJailled", "") 
        setElementDimension(player, 0) 
        prisoner[player] = nil 
        setPlayerWantedLevel(player, 0) 
        exports.CSFpolice:setWantedLevel(player, 0) 
        setElementData(player, "CSFpolice.wantedStars", 0) 
        setElementData(player, "CSFpolice.wantedPoints", 0) 
        setAccountData(getPlayerAccount(player), "CSFprison.prisonTime", false) 
        triggerClientEvent(player, "CSFprison.onPlayerReleased", root) 
        setElementData(player,"adminpunished",false) 
    end 
end 
  
addEventHandler("onVehicleStartEnter",root, 
    function (player) 
        if exports.CSFprison:isPlayerJailed(player) then 
            cancelEvent() 
            exports.DENdxmsg:createNewDxMessage(player,"You can't enter a vehicle while holding in Jail!",255,0,0,true) 
        end 
    end 
) 
  
function checkForVehicle() 
    if exports.CSFprison:isPlayerJailed() then 
        if isPedInVehicle() or isElementAttached() then 
            exports.CSFprison:sendPlayerToPrison() 
            exports.DENdxmsg:createNewDxMessage(player,"You can't enter or /glue to a vehicle while in jail!",255,0,0,true) 
        end 
    end 
end 
  
addEventHandler("onPlayerContact",root, 
    function (old,new) 
        if exports.CSFprison:isPlayerJailed(new) then 
            exports.CSFprison:sendPlayerToPrison() 
            exports.DENdxmsg:createNewDxMessage(source,"You're not allowed to stand on vehicles while in Jail!",255,0,0,true) 
        end 
    end 
) 
function getPrisonTime(player) 
if isPlayerJailed(player) then 
return prisoner[player][2] 
end 
end 
  

Link to comment

اعتقد اني رديت عليك بموضوعك السابق

والي كان فيه ردي

عليكم السلام

اكتب باف8

debugscript 3

واسجن نفسك لوقت قصير مره

ويوم ينتهي الوقت , شوف وش يطلع بالشاشة من تحت بالنص ض1

خلي المود لحاله فقط , عشان نعرف الخطأ

وارسل لنا وش يطلع لك

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...