Hades.
Łiiiiiiiiii
Wiek: 22 Na forum: 4700 dni Posty: 372
Nick w MP: Hades
Piwa : 3214
S-utility
function getOnlinePlayersinOrganization ( org )
local number = 0
for i , v in ipairs ( getElementsByType ( "player" )) do
if getElementData ( v , "player:organization" ) == org then
number = number + 1
end
end
return number
end
function getPlayerOrganization ( el )
local uid = getElementData ( el , "player:uid" )
local result = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE uid=? LIMIT 1;" , uid ) -- pobieramy tylko JEDEN rekord
if result and #result > 0 then
return result [ 1 ]. name
else
return false
end
end
function getPlayerOrganizationRank ( el , org )
local uid = getElementData ( el , "player:uid" )
local result = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=? AND uid=? LIMIT 1;" , org , uid ) -- pobieramy tylko JEDEN rekord
if result and #result > 0 then
return result [ 1 ]. rank
else
return false
end
end
S_zarzad
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 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 query1 = exports [ "ogrpg-db" ]: dbSet ( "INSERT ogrpg_organizations (uid,login,code) VALUES (?,?,?)" , text , result1 [ 1 ]. login , faction )
local resulted = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_organizations WHERE code=?" , faction )
triggerClientEvent ( client , "lidero:refresh" , resourceRoot , resulted )
outputChatBox ( "* Pomy?lnie dodano gracza " .. result1 [ 1 ]. login .. " o uid: " .. text .. " w organizacji na 1 poziom" , client )
outputDebugString ( "Organizacja : " .. faction .. " UID :" .. text )
local target = findPlayer ( client , text )
if target then
outputChatBox ( "Zosta?e? dodany do organizacji o nazwie :" .. faction .. ". Aby odej?? wpisz /opusc" , target )
setElementData ( target , "player:organization" , faction )
exports [ 'ogrpg-db' ]: dbSet ( "UPDATE ogrpg_organizations SET actived=curdate() WHERE uid=?" , getElementData ( target , "player:uid" ))
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 ( "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 ( "[ORGANIZACJA(Klawisz O)] (" .. getElementData ( plr , "id" ).. ") " .. getPlayerName ( plr ): gsub ( "#%x%x%x%x%x%x" , "" ).. ": " .. msg , v , 255 , 96 , 0 , false )
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
)
c_zarzad
local wm ={
window ={},
added ={},
edit ={},
close ={},
delete ={},
gridlist ={},
faction = nil ,
}
-- Panel cz ? 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 ? 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 ?
-- Sprawdzamy cz ? 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 )
[ Dodano : 2016-12-05, 18:26 ]
[ Dodano : 2016-12-14, 23:48 ]
@REF