Boski1234567891
Młody Skrypter
Wiek: 31 Na forum: 3444 dni Posty: 89
Nick w MP: Medyk312
Piwa : 1965
Siema mam problem z organizacjamy all dziala tylko panel lidera nie dziala oraz kom?nda /panel-organizacj prosze o pomoc a kod nwm gdzie to jest
c_zarzadzanie
local wm ={
window ={},
added ={},
edit ={},
close ={},
delete ={},
gridlist ={},
faction = nil ,
}
-- Panel cz ?& #8218;onk??w
wm . window [ 1 ]= guiCreateWindow ( 0.18 , 0.23 , 0.64 , 0.57 , "Panel Organizacji" , true )
guiWindowSetMovable ( wm . window [ 1 ], false )
guiWindowSetSizable ( wm . window [ 1 ], false )
guiSetVisible ( wm . window [ 1 ], false )
wm . gridlist [ 1 ]= guiCreateGridList ( 0.02 , 0.05 , 0.97 , 0.73 , true , wm . window [ 1 ])
guiGridListAddColumn ( wm . gridlist [ 1 ], "NICK" , 0.3 )
guiGridListAddColumn ( wm . gridlist [ 1 ], "UID" , 0.3 )
guiGridListAddColumn ( wm . gridlist [ 1 ], "Ranga" , 0.3 )
guiGridListAddColumn ( wm . gridlist [ 1 ], "Aktywny" , 0.3 )
wm . added [ 1 ]= guiCreateButton ( 0.02 , 0.80 , 0.26 , 0.16 , "Dodaj" , true , wm . window [ 1 ])
wm . edit [ 1 ]= guiCreateButton ( 0.38 , 0.80 , 0.26 , 0.16 , "Edytuj" , true , wm . window [ 1 ])
wm . delete [ 1 ]= guiCreateButton ( 0.73 , 0.80 , 0.26 , 0.16 , "Wyrzu?‡" , true , wm . window [ 1 ])
-- Dodawanie cz ?& #8218;onka/edycja jego
wm . window [ 2 ]= guiCreateWindow ( 0.35 , 0.43 , 0.30 , 0.22 , "Dodawanie cz?‚onka - wpisz nick i kliknij dodaj" , true )
guiWindowSetMovable ( wm . window [ 2 ], false )
guiWindowSetSizable ( wm . window [ 2 ], false )
guiSetVisible ( wm . window [ 2 ], false )
wm . edit [ 2 ]= guiCreateEdit ( 0.09 , 0.21 , 0.81 , 0.20 , "" , true , wm . window [ 2 ])
wm . close [ 1 ]= guiCreateButton ( 0.55 , 0.52 , 0.36 , 0.31 , "Zamknij" , true , wm . window [ 2 ])
wm . added [ 2 ]= guiCreateButton ( 0.09 , 0.52 , 0.36 , 0.31 , "Dodaj" , true , wm . window [ 2 ])
function fillUsersData ( result )
guiGridListClear ( wm . gridlist [ 1 ])
for i , v in pairs ( result ) do
local row = guiGridListAddRow ( wm . gridlist [ 1 ])
guiGridListSetItemText ( wm . gridlist [ 1 ], row , 1 , v [ "login" ], false , false )
guiGridListSetItemText ( wm . gridlist [ 1 ], row , 2 , v [ "uid" ], false , false )
guiGridListSetItemText ( wm . gridlist [ 1 ], row , 3 , v [ "rank" ], false , false )
guiGridListSetItemText ( wm . gridlist [ 1 ], row , 4 , v [ "actived" ], false , false )
end
end
addEventHandler ( "onClientMarkerLeave" , resourceRoot , function( el , md )
if el ~= localPlayer then return end
if guiGetVisible ( wm . window [ 1 ]) == true then
showCursor ( false )
guiSetVisible ( wm . window [ 1 ], false )
guiSetVisible ( wm . window [ 2 ], false )
end
end )
addEventHandler ( "onClientGUIClick" , resourceRoot , function()
if source == wm . added [ 1 ] then
guiSetVisible ( wm . window [ 2 ], true )
guiMoveToBack ( wm . window [ 1 ])
guiSetText ( wm . added [ 2 ], "Dodaj" )
guiSetText ( wm . edit [ 2 ], "" )
guiSetText ( wm . window [ 2 ], "Dodawanie cz?‚onka - wpisz UID gracza i kliknij dodaj" )
end
if source == wm . edit [ 1 ] then
local selectedRow = guiGridListGetSelectedItem ( wm . gridlist [ 1 ])
if not selectedRow or selectedRow < 0 then return end
local rank = guiGridListGetItemText ( wm . gridlist [ 1 ], selectedRow , 3 )
if tonumber ( rank ) == 4 then outputChatBox ( "** Gracz ma lidera!!!!" , 255 , 0 , 0 ) return end
guiSetVisible ( wm . window [ 2 ], true )
guiMoveToBack ( wm . window [ 1 ])
guiSetText ( wm . added [ 2 ], "Edycja" )
guiSetText ( wm . edit [ 2 ], "" )
guiSetText ( wm . window [ 2 ], "Edycja cz?‚onka - wpisz ID rangi (0-3) i kliknij edycja! Ranga 3 = (vice-lidero)" )
end
if source == wm . close [ 1 ] then
guiSetVisible ( wm . window [ 2 ], false )
end
if source == wm . added [ 2 ] then
local text = guiGetText ( wm . edit [ 2 ])
if guiGetText ( wm . added [ 2 ]) ~= "Dodaj" then
local selectedRow = guiGridListGetSelectedItem ( wm . gridlist [ 1 ])
if not selectedRow or selectedRow < 0 then return end
local name = guiGridListGetItemText ( wm . gridlist [ 1 ], selectedRow , 2 )
if not name then return end
if not text then return end
if tonumber ( text ) and tonumber ( text ) <= 3 then
triggerServerEvent ( "lidero:editUser" , resourceRoot , name , text , wm . faction )
triggerEvent ( "lidero:showGUI" , resourceRoot , "brak" , "brak" )
else
guiSetText ( wm . window [ 2 ], "Podaj range w liczbach! Maksymalna to 3(vice-lidero)!" )
end
else
if not text then return end
triggerServerEvent ( "lidero:addUser" , resourceRoot , text , wm . faction )
triggerEvent ( "lidero:showGUI" , resourceRoot , "brak" , "brak" )
end
end
if source == wm . delete [ 1 ] then
local selectedRow = guiGridListGetSelectedItem ( wm . gridlist [ 1 ])
if not selectedRow or selectedRow < 0 then return end
local rank = guiGridListGetItemText ( wm . gridlist [ 1 ], selectedRow , 3 )
if tonumber ( rank ) == 4 then outputChatBox ( "** Gracz ma lidera!!!!" , 255 , 0 , 0 ) return end
local name = guiGridListGetItemText ( wm . gridlist [ 1 ], selectedRow , 2 )
if not name then return end
triggerServerEvent ( "lidero:deleteUser" , resourceRoot , name , wm . faction )
triggerEvent ( "lidero:showGUI" , resourceRoot , "brak" , "brak" )
end
if source == wm . gridlist [ 1 ] then
local selectedRow = guiGridListGetSelectedItem ( wm . gridlist [ 1 ])
if not selectedRow or selectedRow < 0 then
guiSetEnabled ( wm . edit [ 1 ], false )
guiSetEnabled ( wm . delete [ 1 ], false )
else
guiSetEnabled ( wm . edit [ 1 ], true )
guiSetEnabled ( wm . delete [ 1 ], true )
end
end
end )
addEvent ( "lidero:showGUI" , true )
addEventHandler ( "lidero:showGUI" , resourceRoot , function( fid , result )
if guiGetVisible ( wm . window [ 1 ]) == false then
-- Ustawienia
showCursor ( true , false )
guiSetVisible ( wm . window [ 1 ], true )
guiSetEnabled ( wm . edit [ 1 ], false )
guiSetEnabled ( wm . delete [ 1 ], false )
wm . faction = fid -- deklarujemy frakcj ?& #8482;
-- Sprawdzamy cz ?& #8218;onk??w
fillUsersData ( result )
else
showCursor ( false , false )
guiSetVisible ( wm . window [ 1 ], false )
guiSetEnabled ( wm . edit [ 1 ], false )
guiSetEnabled ( wm . delete [ 1 ], false )
guiSetVisible ( wm . window [ 2 ], false )
end
end )
addEvent ( "lidero:refresh" , true )
addEventHandler ( "lidero:refresh" , resourceRoot , fillUsersData )
[ color = cyan ][ size = 24 ] s_zarz ? dzanie [/ size ][/ color ]
[/ code : 0 ] local zaproszenia = {}
local max_people_in_org = 55 ---- MAKSYMALNA LICZBA LUDZI W ORGANIZACJI !
function findPlayer ( plr , cel )
local target = nil
if ( tonumber ( cel ) ~= nil ) then
for _ , thePlayer in ipairs ( getElementsByType ( "player" )) do
if getElementData ( thePlayer , "player:uid" ) == tonumber ( cel ) then target = thePlayer end
end
else -- podano fragment nicku
for _ , thePlayer in ipairs ( getElementsByType ( "player" )) do
if string . find ( string . gsub ( getPlayerName ( thePlayer ): lower (), "#%x%x%x%x%x%x" , "" ), cel : lower (), 0 , true ) then
if ( target ) then
outputChatBox ( "* Znaleziono wiecej niz jednego gracza o pasujacym nicku, podaj wiecej liter." , plr )
return nil
end
target = thePlayer
end
end
end
if target and getElementData ( target , "p:inv" ) then return nil end
return target
end
addEvent ( "lidero:editUser" , true )
addEventHandler ( "lidero:editUser" , resourceRoot , function( text , rank , faction )
local result1 = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_users WHERE id=?" , text )
if not result1 or #result1 < 0 then outputChatBox("* Podany u??ytkownik nie istnieje w bazie danych.", client, 255, 0, 0) return end
local result2 = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=? AND uid=? LIMIT 1;" , faction , text ) -- pobieramy tylko JEDEN rekord
if not result2 or #result2 < 0 then outputChatBox("* Podany u??ytkownik nie znajduje si?™ w tej organizacji",client,255,0,0) return end
local ranke = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=? AND uid=? LIMIT 1;" , faction , getElementData ( client , "player:uid" )) -- pobieramy tylko JEDEN rekord
if not ranke or #ranke < 0 then outputChatBox("* Nie znajdujesz si?™ w tej organizacji!",client,255,0,0) return end
if tonumber ( ranke [ 1 ]. rank ) <= 3 and ( tonumber ( rank ) > 2 ) then outputChatBox ( "*Posiadasz za ma?‚?… range!" , client , 255 , 0 , 0 ) return end
local query1 = exports [ "ogrpg-db" ]: dbSet ( "UPDATE ogrpg_organizations SET rank=? WHERE uid=? AND code=?" , rank , text , faction )
if query1 then
local resulted = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=?" , faction )
triggerClientEvent ( client , "lidero:refresh" , resourceRoot , resulted )
outputChatBox ( "* Pomy?›lnie zmieniono rang?™ graczowi " .. result1 [ 1 ]. login .. " o id: " .. faction .. " na " .. rank .. " w organizacji." , client )
end
local target = findPlayer ( client , text )
if target then outputChatBox ( "* Twoja przynaleznosc w organizacji :" .. faction .. " zostala zaaktualizowana. Aby odej?›?‡ wpisz /opusc" , target ) end
end )
addEvent ( "lidero:addUser" , true )
addEventHandler ( "lidero:addUser" , resourceRoot , function( text , faction )
if string . len ( text ) <= 0 then return end
local result1 = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_users WHERE id=?" , text )
if not result1 or #result1 < 0 then outputChatBox("* Podany u??ytkownik nie istnieje w bazie danych.", client, 255, 0, 0) return end
local result2 = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE uid=? and code=?" , text , faction )
if result2 and #result2 > 0 then outputChatBox("* Podany u??ytkownik ju?? znajduje si?™ w tej organizacji.", client, 255, 0, 0) return end
local result = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=?" , faction )
if result and #result >= max_people_in_org then outputChatBox("* Posiadasz ju?? maksymaln?… liczbe ludzi w organizacji.", client, 255, 0, 0) return end
local result3 = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE uid=?" , text )
if result3 and #result3 > 0 then outputChatBox("* Podany u??ytkownik ju?? znajduje si?™ w innej organizacji.", client, 255, 0, 0) return end
local target = findPlayer ( client , text )
if target then
if zaproszenia [ target ] then outputChatBox ( "** Gracz ju?? dosta?‚ zaproszenie!" , client ) return end
if zaproszenia [ target ] and isTimer ( zaproszenia [ target ][ 3 ]) then killTimer ( zaproszenia [ target ][ 3 ]) end
zaproszenia [ target ] = { faction , client , setTimer (function() zaproszenia [ target ] = nil end , 10000 , 1 )}
outputChatBox ( "* Zosta?‚e?› zaproszony do organizacji o nazwie :" .. faction .. "!" , target , 0 , 255 , 0 )
outputChatBox ( "* Masz 10 sekund na zaakceptowanie zaproszenia! (Wpisz /akceptuj)" , target , 0 , 255 , 0 )
end
end )
addEvent ( "lidero:deleteUser" , true )
addEventHandler ( "lidero:deleteUser" , resourceRoot , function( text , faction )
local result1 = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_users WHERE id=?" , text )
if not result1 or #result1 < 0 then outputChatBox("* Podany u??ytkownik nie istnieje w bazie danych.", client, 255, 0, 0) return end
local result2 = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=? AND uid=? LIMIT 1;" , faction , text ) -- pobieramy tylko JEDEN rekord
if not result2 or #result2 < 0 then outputChatBox("* Podany u??ytkownik nie znajduje si?™ w tej organizacji",client,255,0,0) return end
local query1 = exports [ "ogrpg-db" ]: dbSet ( "DELETE FROM ogrpg_organizations WHERE uid=? AND code=?" , text , faction )
local resulted = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=?" , faction )
triggerClientEvent ( client , "lidero:refresh" , resourceRoot , resulted )
outputChatBox ( "* Pomy?›lnie usunieto gracza " .. result1 [ 1 ]. login .. " o uid: " .. text .. " z organizacji" , client )
local target = findPlayer ( client , text )
if target then outputChatBox ( "* Twoja przynaleznosc w organizacji :" .. faction .. " zostala zaaktualizowana." , target ); setElementData ( target , "player:organization" , false ) end
end )
addCommandHandler ( "panel-organizacji" ,function ( plr , cmd ,...)
local uid = getElementData ( plr , "player:uid" )
if not uid then return end
local code = getElementData ( plr , "player:organization" )
if not code then return end
local result = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=? AND uid=? LIMIT 1;" , code , uid ) -- pobieramy tylko JEDEN rekord
if result and #result > 0 then
if result [ 1 ]. rank <= 2 then outputChatBox ( "* Brak uprawnien do panelu organizacji" , plr ) return end
local resulted = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=?" , code )
triggerClientEvent ( plr , "lidero:showGUI" , resourceRoot , code , resulted )
end
end )
addCommandHandler ( "akceptuj" ,function ( plr , cmd )
local uid = getElementData ( plr , "player:uid" )
if not uid then return end
if not zaproszenia [ plr ] then outputChatBox ( "*Nie masz zaproszenia do organizacji lub przedawni?‚o si?™!!" , plr , 255 , 0 , 0 ) return end
local result1 = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_users WHERE id=?" , uid )
if not result1 or #result1 < 0 then outputChatBox("* Wystapil blad # Brak Ciebie w bazie danych!.", plr, 255, 0, 0) return end
local result = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE uid=? and code=?" , uid , zaproszenia [ plr ][ 1 ])
if result and #result > 0 then outputChatBox("* Podany u??ytkownik ju?? znajduje si?™ w tej organizacji.", client, 255, 0, 0) return end
local result = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE uid=?" , uid )
if result and #result > 0 then outputChatBox("* Podany u??ytkownik ju?? znajduje si?™ w innej organizacji.", client, 255, 0, 0) return end
local query1 = exports [ "ogrpg-db" ]: dbSet ( "INSERT ogrpg_organizations (uid,login,code) VALUES (?,?,?)" , uid , result1 [ 1 ]. login , zaproszenia [ plr ][ 1 ])
if isElement ( zaproszenia [ plr ][ 2 ]) then
if isTimer ( zaproszenia [ plr ][ 3 ]) then killTimer ( zaproszenia [ plr ][ 3 ]) end
local resulted = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=?" , zaproszenia [ plr ][ 1 ])
triggerClientEvent ( zaproszenia [ plr ][ 2 ], "lidero:refresh" , resourceRoot , resulted )
outputChatBox ( "* Pomy?›lnie dodano gracza " .. result1 [ 1 ]. login .. " o uid: " .. uid .. " w organizacji na 1 poziom" , zaproszenia [ plr ][ 2 ])
end
outputDebugString ( "* Organizacja : " .. zaproszenia [ plr ][ 1 ].. " UID :" .. uid )
outputChatBox ( "* Akceptowales zaproszenie do organizacji o nazwie :" .. zaproszenia [ plr ][ 1 ].. ". Aby odej?›?‡ wpisz /opusc" , plr )
setElementData ( plr , "player:organization" , zaproszenia [ plr ][ 1 ])
exports [ 'ogrpg-db' ]: dbSet ( "UPDATE ogrpg_organizations SET actived=curdate() WHERE uid=?" , getElementData ( plr , "player:uid" ))
zaproszenia [ plr ] = nil
end )
addCommandHandler ( "opusc" ,function ( plr , cmd )
local uid = getElementData ( plr , "player:uid" )
if not uid then return end
local code = getElementData ( plr , "player:organization" )
if not code then outputChatBox ( "* Nie jestes w ??adnej organizacji!" , plr ) return end
local query1 = exports [ "ogrpg-db" ]: dbSet ( "DELETE FROM ogrpg_organizations WHERE uid=? AND code=?" , uid , code )
outputChatBox ( "* Twoja przynaleznosc w organizacji :" .. code .. " zostala zaaktualizowana." , plr ); setElementData ( plr , "player:organization" , false )
end )
function globalMessage ( plr , cmd , ...)
local frakcja = getElementData ( plr , 'player:organization' )
if not frakcja then
return
end
local msg = table . concat ( { ... }, " " )
local admins = getElementsByType ( 'player' )
for i , v in pairs ( admins ) do
local pfrakcje = getElementData ( v , 'player:organization' )
if frakcja == pfrakcje then
outputChatBox ( "#000000" .. pfrakcje .. "> #919191[#FFFFFF" .. getElementData ( plr , "id" ).. "#919191] #FFFFFF" .. getPlayerName ( plr ): gsub ( "#%x%x%x%x%x%x" , "" ).. "#FFFFFF: #FFFFFF" .. msg , v , 255 , 255 , 255 , true )
end
end
end
addCommandHandler ( "organizacja" , globalMessage )
addEventHandler ( "onResourceStart" , root , function()
local players = getElementsByType ( 'player' )
for _ , p in pairs ( players ) do
bindKey ( p , "o" , "down" , "chatbox" , "organizacja" )
end
end )
addEventHandler ( "onPlayerSpawn" , getRootElement (),
function ( _ )
bindKey ( source , "o" , "down" , "chatbox" , "organizacja" )
end
)
Ostatnio zmieniony przez marcin778 2017-01-17, 17:29, w całości zmieniany 1 raz