Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2018-06-26, 10:41


Kulegg







Wiek: 46
Na forum: 3125 dni
Posty: 283

Piwa: 20

Respekt: 50

Witam, mam wgrany skrypt na gui-jail, i pod komend? /jail wyskakuje okienko z list? graczy, mo?liw? ilo?ci? uwi?zienia ich na minuty, godziny, oraz opcja uwiez.

I mam pro?b? do was, jak mam zrobi? tak, aby gracz w jailu, po reconnect'cie tepa?o go spowrotem do tego jaila? Oraz jak zrobi? t? komende tylko dla SAPD?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-06-26, 11:39


Xrent

-






Wiek: 21
Na forum: 3047 dni
Posty: 230
Nick w MP: Pazdam

Piwa: 535

Respekt: 295,3
Respekt: 295,3Respekt: 295,3Respekt: 295,3

Ostrzeżeń: 60%
Podaj kod jak wbij? pc postaram si? pom?c.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-06-26, 12:13


Kulegg







Wiek: 46
Na forum: 3125 dni
Posty: 283

Piwa: 20

Respekt: 50


--***********************************--
--***********************************--
--            Jail System            --
--            By Al3grab             --
--            Server Side            --
--***********************************--
--***********************************--
Command get("command") -- getTheCommand
  
rRoot getResourceRootElement(getThisResource())
------
function getData(to) 
    local file xmlLoadFile("data.xml")
         jTable = {}
         tTable = {}
    if file then
        for k,v in ipairs (xmlNodeGetChildren(xmlFindChild(file,"Jails",0)))do
            local name xmlNodeGetAttribute(v,"name")
            local posX,posY,posZ xmlNodeGetAttribute(v,"posX"),xmlNodeGetAttribute(v,"posY"),xmlNodeGetAttribute(v,"posZ")
            local int xmlNodeGetAttribute(v,"int")
            local dim xmlNodeGetAttribute(v,"dim")
            table.insert(jTable, {name,posX,posY,posZ,int,dim})
        end
        for k,v in ipairs (xmlNodeGetChildren(xmlFindChild(file,"time",0)))do
            local times xmlNodeGetAttribute(v,"times")
                for =1,50 do 
                    local iTime gettok timesistring.byte(',') )
                    if iTime then
                    --    
                    if tonumber(iTime) > 59.5 then
                        iTime math.floor(iTime 60)
                        iTimeDes "Minutes"
                            if iTime 59.5 then
                                iTime math.floor(iTime 60)
                                iTimeDes "Hours"
                            end
                    else
                        iTimeDes "Seconds"
                    end
                        table.insert(tTable,{iTime,iTimeDes})
                    end
                end
        end
    end
    triggerClientEvent(to,"sendDataz",to,jTable,tTable) -- sending to client event
end
addEvent("getDataz",true)
addEventHandler("getDataz",root,getData)


addCommandHandler Command, -- Adding The Command Handler
    function ( playercmd )
        if hasObjectPermissionTo player"function.banPlayer" then
            triggerClientEvent(player,"jailShow",player)
        else
        outputChatBox(" Access Denied ",player,255,0,0)
    end
end
)

anims = {
    "F_smklean_loop",
    "M_smklean_loop",
    "M_smkstnd_loop",
    "M_smk_drag",
    "M_smk_in",
    "M_smk_loop",
    "M_smk_out",
    "M_smk_tap" ,
}

function removeVehicle(thePlayer)
    if isPedInVehicle(thePlayerthen destroyElement(getPedOccupiedVehicle(thePlayer)) end
end
function JailHim(jailed,theJails,time,timeDes,showWho,timeReady)
        thePlayer getPlayerFromName(jailed)
        if not thePlayer then outputChatBox("** #FFFF00Please Select a Player !",source,255,0,0,true) return end
        removePedFromVehicle(thePlayer)
        for k,v in ipairs (  jTable  ) do
                if theJails == v[1then
                    theJail v
                end
        end
        if theJail  then
        if tostring(timethen
            if timeReady == true then
              theTimex tonumber(time)
            else
             theTimex gettok time1string.byte(timeDes) )
            end
            if timeDes == "Hours" then
                theTimex math.floor(theTimex*60*60*1000)
                elseif timeDes == "Minutes" then
                theTimex math.floor(theTimex*60*1000)
                elseif timeDes == "Seconds" then
                theTimex math.floor(theTimex*1000)
            end
            startJailTimer thePlayer theTimex )
        local x,y,theJail[2],theJail[3],theJail[4]
        local int theJail[5]
        local dim theJail[6]
        setElementInterior thePlayerint )
        setElementDimension thePlayerdim )
        setElementPosition (thePlayer,x,y,)
        setElementData(thePlayer,"jailed",true)
        setElementData(rRoot,""..getPlayerSerial(thePlayer).."-j",true)
        toggleControl(thePlayer,"fire",false)
        if showWho ~= true then
        outputChatBox("** #FFFF00You Jailed [ "..getPlayerName(thePlayer).." #FFFF00] at "..theJail[1].." For "..time,source,255,0,0,true)
        outputChatBox("** #FFFF00You Have Been Jailed By [ "..getPlayerName(source).." #FFFF00] at "..theJail[1].." For "..time,thePlayer,255,0,0,true)
        end
        outputChatBox("** #FFFF00[ "..getPlayerName(thePlayer).." #FFFF00] Has Been Jailed For "..time,root,255,0,0,true)
        local randomAnim
        setPedAnimation(thePlayer,"SMOKING",anims[math.random(#anims)],theTimex/2)
        else
        outputChatBox("** #FFFF00Please Select Time !",source,255,0,0,true)
        end
        else
        outputChatBox("** #FFFF00Please Select a Jail !",source,255,0,0,true)
        end 
end    
addEvent("JailHimx",true)
addEventHandler("JailHimx",root,JailHim)

function unJailHim(jailed,showWho)
    thePlayer getPlayerFromName(jailed)
    if not thePlayer then outputChatBox("** #FFFF00Please Select a Player !",source,255,0,0,true) return end
--if getElementData(thePlayer,"jailed") == true then
        setElementInterior thePlayer0)
        setElementDimension thePlayer)
        setElementPosition thePlayer1552.9108886719, -1675.584472656316.1953125)
        setElementData(thePlayer,"jailed",false)
        setElementData(rRoot,""..getPlayerSerial(thePlayer).."-j",false)
        if showWho ~= true then
        outputChatBox("** #FFFF00You Released [ "..getPlayerName(thePlayer).." #FFFF00]",source,255,0,0,true)
        outputChatBox("** #FFFF00You Have Been Released by [ "..getPlayerName(source).." #FFFF00]",thePlayer,255,0,0,true)
        end
        outputChatBox("** #FFFF00[ "..getPlayerName(thePlayer).." #FFFF00] Has Been Released ",root,255,0,0,true)
        setPedAnimation(thePlayer)
        stopJailTimer(Player)
        toggleControl(thePlayer,"fire",true)
    --    setTimer(killPed,1500,1,thePlayer)
--else
    --    outputChatBox("The Player is Not Jailed !",source,255,0,0,true)
--end
end    
addEvent("unJailHim",true)-- unJail
addEventHandler("unJailHim",root,unJailHim)

addEvent("onJailEnd",true)
addEventHandler("onJailEnd",root,function(player)
unJailHim(getPlayerName(player),true)
end )

addEventHandler("onPlayerSpawn",root, -- Check If He Is Jailed OnSpawn ]
function()
if getElementData(source,"jailed") == true then
 randomJail jTable[math.random(#jTable)]
if randomJail then
    x,y,randomJail[2],randomJail[3],randomJail[4]
    int randomJail[5]
    dim randomJail[6]
    setElementInterior sourceint )
    setElementDimension(source,dim)
    setElementPosition (source,x,y,)
end
end
end)

addEventHandler("onPlayerJoin",root, -- Check If He Is Jailed By Serial OnJoin ]
function()
if getElementData(rRoot,""..getPlayerSerial(source).."-j") == true then

 randomJail jTable[math.random(#jTable)]
if randomJail then
    x,y,randomJail[2],randomJail[3],randomJail[4]
    int randomJail[5]
    dim randomJail[6]
    setElementInterior sourceint )
    setElementDimension(source,dim)
    setElementPosition (source,x,y,)
    --
    time getElementData(rRoot,""..getPlayerSerial(source).."-t",time) or 1000
    startJailTimer(source,time)
    setElementData(source,"jailed",true)
end
end
end    )

----

function startJailTimer(Player,theTime) -- to start mission timer ..
    if Player then
        TimerDisplay textCreateDisplay()
        m,s,cs msToTimeStr(theTime)
        fullTime m..":"..s
        TimerText textCreateTextItem "Time Left : "..tostring(fullTime)..""0.390.7 ,"medium",0,255,0,255,2.0,"left","center",255)
        textDisplayAddText TimerDisplayTimerText )
        textDisplayAddObserver TimerDisplayPlayer )
        sortTimerShit(Player,TimerText,theTime)
    end
end

--Robbed from JailTimerr resource , and it was robbed from arc_ :p
function msToTimeStr(ms)
    if not ms then
        return ''
    end
    
    if ms 0 then
        return "0","00","00"
    end
    
    local centiseconds tostring(math.floor(math.fmod(ms1000)/10))
    if #centiseconds == 1 then
        centiseconds '0' .. centiseconds
    end
    local s math.floor(ms 1000)
    local seconds tostring(math.fmod(s60))
    if #seconds == 1 then
        seconds '0' .. seconds
    end
    local minutes tostring(math.floor(60))
    
    return minutessecondscentiseconds
end

function sortTimerShit(plr,timer,time) -- to sort timer's shit ..
    if timer and time then
            if isTimer(timerShitTimer) then
        killTimer(timerShitTimer)
    end
        timerShitTimer = setTimer(function(plr)
                time = time - 70
                m,s,cs = msToTimeStr(time)
                fullTime = m..":"..s
                textItemSetText(timer,"Time Left : "..tostring(fullTime).."")
                if plr then
                setElementData(rRoot,""..getPlayerSerial(plr).."-t",time)
                end
                if ( tonumber(m) <= 0 and tonumber(s) <= 0 and tonumber(cs) <= 0 ) then
                    onTimerFinish(plr,timer)
                end
        end , 50 , 0 ,plr )
    end
end

function stopJailTimer(Player)
    textDestroyDisplay(TimerDisplay)
    if TimerText then
    textDestroyTextItem(TimerText)
    end
    if isTimer(timerShitTimer) then
        killTimer(timerShitTimer)
    end
end

function onTimerFinish(Player) -- on timer end
    stopJailTimer(Player)
    triggerEvent("onJailEnd",Player,Player)
end



Oraz


--***********************************--
--***********************************--
--            Jail System            --
--            By Al3grab             --
--            Client Side            --
--***********************************--
--***********************************--

--  1.0  Made At 3/9/2011 12:15 PM  --
--  2.0  Made At 3/2/2012 06:15 PM  --
--  2.1  Made At 22/5/2012 4:00 PM  --

lp getLocalPlayer()
rRoot getResourceRootElement(getThisResource())
setElementData(lp,"jailed",false)
------
addEventHandler("onClientResourceStart",rRoot,function()
triggerServerEvent("getDataz",lp,lp)
outputDebugString("Jail System v2.1 By Al3grab | Started")
end )
desz = {}
addEvent("sendDataz",true)
addEventHandler("sendDataz",root,function(jTable,tTable)

------

jWin guiCreateWindow(460,172,445,416,"Jail System v2.1 | By Al3grab",false)
--- Center Window ---
local screenW,screenH=guiGetScreenSize()
local windowW,windowH=guiGetSize(jWin,false)
local x,= (screenW-windowW)/2,(screenH-windowH)/2
guiSetPosition(jWin,x,y,false)
----- Center Window -----
guiSetVisible(jWin,false)
guiWindowSetSizable(jWin,false)
-------------------------
jBut guiCreateButton(247,338,167,31,"Jail Him",false,jWin)
tGrid guiCreateGridList(240,184,190,144,false,jWin)
guiGridListSetSelectionMode(tGrid,0)
-------
--
sEdit guiCreateEdit(14,380,217,23,"Search ..",false,jWin)
--
--------
local timeC guiGridListAddColumntGrid"Time"0.85 )
if timeC then
for k,v in ipairs tTable ) do
local time v[1]
local des v[2]
local row guiGridListAddRow tGrid )
desz[row] = des
guiGridListSetItemText tGridrowtimeCtime.." "..desfalsetrue )
end
local row guiGridListAddRow tGrid )
guiGridListSetItemText tGridrowtimeC,"Other .."falsetrue )
end
--------
jGrid guiCreateGridList(240,31,190,144,false,jWin)
guiGridListSetSelectionMode(jGrid,0)
--------
local jailC guiGridListAddColumnjGrid"Jail"0.85 )
for k,v in ipairs jTable ) do
local name v[1]
local row guiGridListAddRow jGrid )
guiGridListSetItemText jGridrowjailCnamefalsefalse )
end
jcBut guiCreateButton(246,378,172,24,"Close",false,jWin)

function jailShow ()
    guiSetVisible(jWin,not guiGetVisible jWin ) )
    showCursor(guiGetVisible jWin ) )
    guiSetInputEnabled(guiGetVisible jWin ) )
    destroyElement(pList)
    -- Players List
           pList guiCreateGridList(14,31,218,338,false,jWin)    
         column guiGridListAddColumnpList"Player"0.85 )
        if ( column then
        for idplayer in ipairs(getElementsByType("player")) do
             row guiGridListAddRow pList )
            guiGridListSetItemText pListrowcolumngetPlayerName player ), falsefalse )
        end
        end
    -- Players List
end
addEvent("jailShow",true)
addEventHandler("jailShow",root,jailShow)

function changeText(button,state,x,y)
        selectedRowselectedCol guiGridListGetSelectedItempList )
        sPlayer guiGridListGetItemTextpListselectedRowselectedCol )
        local thePlr getPlayerFromName(sPlayer)
        if thePlr then
            local isJailed getElementData(thePlr,"jailed")
            if isJailed == false then
                guiSetText(jBut,"Jail Him")
            elseif isJailed == true then
                guiSetText(jBut,"Release Him")
            end
        end
    
end
addEventHandler("onClientGUIClick",root,changeText)

function onClick (buttonstateabsoluteXabsoluteY)
    selectedRowselectedCol guiGridListGetSelectedItempList )
        sPlayer guiGridListGetItemTextpListselectedRowselectedCol )
        jail guiGridListGetItemText jGridguiGridListGetSelectedItem jGrid ), )
        time guiGridListGetItemText tGridguiGridListGetSelectedItem tGrid ), )
        timeDes tostring(desz[guiGridListGetSelectedItem tGrid )])
    if ( source == jBut then
        if guiGetText(jBut) == "Jail Him" then
            if time ~= "Other .." then
                triggerServerEvent("JailHimx",lp,sPlayer,jail,time,timeDes)
            else
                createTimeSelect(sPlayer,jail)
            end
        elseif guiGetText(jBut) == "Release Him" then
            triggerServerEvent("unJailHim",lp,sPlayer)
    end
----------
elseif ( source == jcBut then
    guiSetVisible (jWinfalse)
    showCursor (false)
    guiSetInputEnabled(false)
    end
    end
addEventHandler"onClientGUIClick"rootonClick )

------------
end )

addEventHandler("onClientPlayerDamage",root,function(at)
if getElementData(source,"jailed") == true then
if at then cancelEvent() end
end
end    )

-------

addEventHandler("onClientGUIClick",root,function()
if source == sEdit then
    guiSetText(sEdit,"")
    --[[
else
    guiSetText(sEdit,"Search ..")
    --]]
end end )

addEventHandler("onClientGUIChanged",root,function()
if source == sEdit then
    ------
    guiGridListClear(pList)
    for k,v in ipairs getElementsByType("player") ) do
        local name string.lower(getPlayerName(v))
        if name then
            if string.find (name,string.lower(guiGetText(sEdit)) ) then
                row guiGridListAddRow pList )
                guiGridListSetItemText pListrowcolumngetPlayerName ), falsefalse )
                end
            end
        end
    end
    ------
end )
------
function createTimeSelect(theJailed,theJail)
    if not tostring(theJailedthen outputChatBox("** #FFFF00Please Select a Player !",255,0,0,true) return  end
    if not tostring(theJailthen outputChatBox("** #FFFF00Please Select a Jail !",255,0,0,true) return end    
    if isElement(TimeSelect_Windowthen return end    
    TimeSelect_Window guiCreateWindow(550,397,270,125,"Enter Time",false)
    --
    local screenW,screenH=guiGetScreenSize()
    local windowW,windowH=guiGetSize(TimeSelect_Window,false)
    local x,= (screenW-windowW)/2,(screenH-windowH)/2
    guiSetPosition(TimeSelect_Window,x,y,false)
    --
--    guiSetVisible(jWin,false)
    --
    TimeSelect_Edit guiCreateEdit(15,37,89,26,"",false,TimeSelect_Window)
    TimeSelect_Label guiCreateLabel(110,41,10,15,"in",false,TimeSelect_Window)
    TimeSelect_Grid guiCreateGridList(126,31,130,95,false,TimeSelect_Window)
    guiGridListSetSelectionMode(TimeSelect_Grid,2)
    ---
    column guiGridListAddColumnTimeSelect_Grid""0.80 )
    r1 guiGridListAddRow(TimeSelect_Grid)
    r2 guiGridListAddRow(TimeSelect_Grid)
    r3 guiGridListAddRow(TimeSelect_Grid)
    guiGridListSetItemText TimeSelect_Grid r1column"Hours"falsefalse )
    guiGridListSetItemText TimeSelect_Grid r2column,"Minutes"falsefalse )
    guiGridListSetItemText TimeSelect_Grid r3column"Seconds"falsefalse )
    TimeSelect_Button guiCreateButton(14,72,91,40,"OK",false,TimeSelect_Window)
    --
    function onOk()
    if source == TimeSelect_Button then
        --
        removeEventHandler("onClientGUIClick",root,onOk)
        --
        ----------------
        theTime guiGetText(TimeSelect_Edit)
        timeType guiGridListGetItemText TimeSelect_GridguiGridListGetSelectedItem TimeSelect_Grid ) )
        --
        destroyElement(TimeSelect_Window)
        jailShow ()
        --
        if tonumber(theTimethen
            if tostring(timeTypethen
                triggerServerEvent("JailHimx",lp,theJailed,theJail,theTime.." "..timeType,timeType,true)
            else
                outputChatBox("** #FFFF00Please Select , Hours or Minutes or Seconds !",255,0,0,true)
            end
        else
            outputChatBox("** #FFFF00Please Enter a Number !",255,0,0,true)
        end
        ----------------
    end
    end
    addEventHandler("onClientGUIClick",root,onOk)
end


Postaw piwo autorowi tego posta
 

 
Tagi: sapd
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » SAPD Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku