Wysłany: 2018-06-26, 10:41
Kulegg
Wiek: 46 Na forum: 3125 dni Posty: 283
Piwa : 20
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?
Wysłany: 2018-06-26, 11:39
Xrent
-
Wiek: 21 Na forum: 3047 dni Posty: 230
Nick w MP: Pazdam
Piwa : 535
Podaj kod jak wbij? pc postaram si? pom?c.
Wysłany: 2018-06-26, 12:13
Kulegg
Wiek: 46 Na forum: 3125 dni Posty: 283
Piwa : 20
--***********************************--
--***********************************--
-- 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 i = 1 , 50 do
local iTime = gettok ( times , i , string . 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 ( player , cmd )
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 ( thePlayer ) then 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 [ 1 ] then
theJail = v
end
end
if theJail then
if tostring ( time ) then
if timeReady == true then
theTimex = tonumber ( time )
else
theTimex = gettok ( time , 1 , string . 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 , z = theJail [ 2 ], theJail [ 3 ], theJail [ 4 ]
local int = theJail [ 5 ]
local dim = theJail [ 6 ]
setElementInterior ( thePlayer , int )
setElementDimension ( thePlayer , dim )
setElementPosition ( thePlayer , x , y , z )
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 ( thePlayer , 0 )
setElementDimension ( thePlayer , 0 )
setElementPosition ( thePlayer , 1552.9108886719 , - 1675.5844726563 , 16.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 , z = randomJail [ 2 ], randomJail [ 3 ], randomJail [ 4 ]
int = randomJail [ 5 ]
dim = randomJail [ 6 ]
setElementInterior ( source , int )
setElementDimension ( source , dim )
setElementPosition ( source , x , y , z )
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 , z = randomJail [ 2 ], randomJail [ 3 ], randomJail [ 4 ]
int = randomJail [ 5 ]
dim = randomJail [ 6 ]
setElementInterior ( source , int )
setElementDimension ( source , dim )
setElementPosition ( source , x , y , z )
--
time = getElementData ( rRoot , "" .. getPlayerSerial ( source ).. "-t" , time ) or 5 * 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.39 , 0.7 , "medium" , 0 , 255 , 0 , 255 , 2.0 , "left" , "center" , 255 )
textDisplayAddText ( TimerDisplay , TimerText )
textDisplayAddObserver ( TimerDisplay , Player )
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 ( ms , 1000 )/ 10 ))
if #centiseconds == 1 then
centiseconds = '0' .. centiseconds
end
local s = math . floor ( ms / 1000 )
local seconds = tostring ( math . fmod ( s , 60 ))
if #seconds == 1 then
seconds = '0' .. seconds
end
local minutes = tostring ( math . floor ( s / 60 ))
return minutes , seconds , centiseconds
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 , y = ( 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 = guiGridListAddColumn ( tGrid , "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 ( tGrid , row , timeC , time .. " " .. des , false , true )
end
local row = guiGridListAddRow ( tGrid )
guiGridListSetItemText ( tGrid , row , timeC , "Other .." , false , true )
end
--------
jGrid = guiCreateGridList ( 240 , 31 , 190 , 144 , false , jWin )
guiGridListSetSelectionMode ( jGrid , 0 )
--------
local jailC = guiGridListAddColumn ( jGrid , "Jail" , 0.85 )
for k , v in ipairs ( jTable ) do
local name = v [ 1 ]
local row = guiGridListAddRow ( jGrid )
guiGridListSetItemText ( jGrid , row , jailC , name , false , false )
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 = guiGridListAddColumn ( pList , "Player" , 0.85 )
if ( column ) then
for id , player in ipairs ( getElementsByType ( "player" )) do
row = guiGridListAddRow ( pList )
guiGridListSetItemText ( pList , row , column , getPlayerName ( player ), false , false )
end
end
-- Players List
end
addEvent ( "jailShow" , true )
addEventHandler ( "jailShow" , root , jailShow )
function changeText ( button , state , x , y )
selectedRow , selectedCol = guiGridListGetSelectedItem ( pList )
sPlayer = guiGridListGetItemText ( pList , selectedRow , selectedCol )
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 ( button , state , absoluteX , absoluteY )
selectedRow , selectedCol = guiGridListGetSelectedItem ( pList )
sPlayer = guiGridListGetItemText ( pList , selectedRow , selectedCol )
jail = guiGridListGetItemText ( jGrid , guiGridListGetSelectedItem ( jGrid ), 1 )
time = guiGridListGetItemText ( tGrid , guiGridListGetSelectedItem ( tGrid ), 1 )
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 ( jWin , false )
showCursor ( false )
guiSetInputEnabled ( false )
end
end
addEventHandler ( "onClientGUIClick" , root , onClick )
------------
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 ( pList , row , column , getPlayerName ( v ), false , false )
end
end
end
end
------
end )
------
function createTimeSelect ( theJailed , theJail )
if not tostring ( theJailed ) then outputChatBox ( "** #FFFF00Please Select a Player !" , 255 , 0 , 0 , true ) return end
if not tostring ( theJail ) then outputChatBox ( "** #FFFF00Please Select a Jail !" , 255 , 0 , 0 , true ) return end
if isElement ( TimeSelect_Window ) then 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 , y = ( 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 = guiGridListAddColumn ( TimeSelect_Grid , "" , 0.80 )
r1 = guiGridListAddRow ( TimeSelect_Grid )
r2 = guiGridListAddRow ( TimeSelect_Grid )
r3 = guiGridListAddRow ( TimeSelect_Grid )
guiGridListSetItemText ( TimeSelect_Grid , r1 , column , "Hours" , false , false )
guiGridListSetItemText ( TimeSelect_Grid , r2 , column , "Minutes" , false , false )
guiGridListSetItemText ( TimeSelect_Grid , r3 , column , "Seconds" , false , false )
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_Grid , guiGridListGetSelectedItem ( TimeSelect_Grid ) )
--
destroyElement ( TimeSelect_Window )
jailShow ()
--
if tonumber ( theTime ) then
if tostring ( timeType ) then
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
Tagi: sapd
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: