Advertisement
Guest User

Untitled

a guest
Nov 24th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.29 KB | None | 0 0
  1. local dbType = "SQLite";  --Here set your database type, "MySQL" or "SQLite" <!>
  2. local dbName = "";        --Your database name <!>
  3. local dbHost = "";        --Your hostname/IP <!>
  4. local dbUser = "";        --Username for database <!>
  5. local dbPass = "";        --Password for database <!>
  6. local dbPort = 0;         --This is an port exemple CHANGE IT <!>
  7.  
  8. if (dbType == "MySQL") then
  9.     db = dbConnect("mysql", "dbname="..dbName..";host="..dbHost..";port="..dbPort, dbUser, dbPass, "share=1");
  10.     dbExec(db, "CREATE TABLE IF NOT EXISTS rank(nome,conta,kills,deaths,alivetime,level,exp, clan)");
  11. elseif (dbType == "SQLite") then
  12.     db = dbConnect("sqlite", "iDB/Ranks.db");
  13.     dbExec(db, "CREATE TABLE IF NOT EXISTS rank(nome,conta,kills,deaths,kdr,alivetime,level,exp, clan)");
  14.     dbExec(db, "CREATE TABLE IF NOT EXISTS ranksemanal(nome,conta,kills,deaths,kdr, clan)");
  15.     dbExec(db, "CREATE TABLE IF NOT EXISTS rankclan(clan,membros,kills,mortes,kdr,level)");
  16.     dbExec(db, "CREATE TABLE IF NOT EXISTS rankclansemanal(clan,membros,kills,mortes,kdr,level)");
  17. else return  end
  18.  
  19. function iRankLogin()
  20.     local account = getPlayerAccount(source)
  21.     if account then
  22.     if getElementType(source) == "player" then
  23.     local Name = getPlayerName(source)
  24.     local accountName = getAccountName (account)
  25.     local Totalkills = getElementData(source,"Totalkills") or 0
  26.     local check = dbPoll(dbQuery(db, "SELECT * FROM rank WHERE conta = ?", accountName), -1)
  27.     if type(check) == "table" and #check == 0 or not check then
  28.         dbExec(db, "INSERT INTO rank(nome,conta,kills,deaths,alivetime,level,exp, clan, kdr) VALUES(?,?,?,?,?,?,?,?,?)",
  29.         Name, accountName,Totalkills,getElementData(source, "deaths3"),getElementData(source,"alivetime"),getElementData(source,"level") or 0,getElementData(source,"experience") or 0,getElementData(source,"Group") or "Nenhum", 0);
  30.        else
  31.             for i,res in ipairs (check) do
  32.               dbExec(db, "UPDATE rank SET nome = ?, kills = ?, alivetime = ?, deaths = ?, level = ?, exp = ?, clan = ?, kdr = ?   WHERE conta = ?",
  33.               Name,Totalkills, getElementData(source,"alivetime"),getElementData(source,"deaths3"),getElementData(source,"level"),getElementData(source,"experience"),getElementData(source,"Group") or "Nenhum", Totalkills/getElementData(source,"deaths3"), accountName)                        
  34.             end
  35.     end
  36.     end
  37.     end
  38. end
  39. addEventHandler("onPlayerLogin", getRootElement(), iRankLogin)
  40.  
  41.  
  42. function iRankElements()
  43.    for index, player in ipairs ( getElementsByType ( "player" ) ) do
  44.     local account = getPlayerAccount(player)
  45.     if account then
  46.     if getElementData(player, "logedin") then
  47.     if getElementType(player) == "player" then
  48.     local Name = getPlayerName(player)
  49.     local accountName = getAccountName (account)
  50.     local Totalkills = getElementData(player,"Totalkills") or 0
  51.     local check = dbPoll(dbQuery(db, "SELECT * FROM rank WHERE conta = ?", accountName), -1)
  52.     if type(check) == "table" and #check == 0 or not check then
  53.         dbExec(db, "INSERT INTO rank(nome,conta,kills,deaths,alivetime,level,exp, clan, kdr) VALUES(?,?,?,?,?,?,?,?,?)",
  54.         Name, accountName,Totalkills,getElementData(player, "deaths3"),getElementData(player,"alivetime"),getElementData(player,"level") or 0,getElementData(player,"experience") or 0,getElementData(player,"Group") or "Nenhum", 0);
  55.        else
  56.             for i,res in ipairs (check) do
  57.               dbExec(db, "UPDATE rank SET nome = ?, kills = ?, alivetime = ?, deaths = ?, level = ?, exp = ?, clan = ?, kdr = ?   WHERE conta = ?",
  58.               Name,Totalkills, getElementData(player,"alivetime"),getElementData(player,"deaths3"),getElementData(player,"level"),getElementData(player,"experience"),getElementData(player,"Group") or "Nenhum", Totalkills/getElementData(player,"deaths3"), accountName)                        
  59.             end
  60.     end
  61.     end
  62.     end
  63.     end
  64.     end
  65. end
  66. setTimer(iRankElements,3600000,0)
  67.  
  68. local iDiasDaSemana = { "Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sabado" }
  69. function iRankSemanalElements()
  70.     local time = getRealTime(timestamp)
  71.     if (iDiasDaSemana[time.weekday+1] == "Segunda-feira" and time.hour == 0 and time.minute == 1 ) then
  72.        dbExec(db, "UPDATE ranksemanal SET kills = ?,deaths = ?,kdr= ?",0,0,0);
  73.        dbExec(db, "UPDATE rankclansemanal SET membros = ?,kills = ?,mortes= ? ,kdr = ?,level = ?",0,0,0,0,0);
  74.     end
  75. end
  76. setTimer(iRankSemanalElements,2000,0)
  77.  
  78. function iMorreuMizeravi(killer, headshot, weapon)
  79.   if getElementType(source) == "player" or  getElementType(killer) == "player" then
  80.     if getElementData(source, "logedin") or getElementData(killer, "logedin") then
  81.     local cMorreu = getElementData(source, "Group")
  82.     local cMatou = getElementData(killer, "Group")
  83.     local acc1 = getPlayerAccount(source)
  84.     local acc2 = getPlayerAccount(killer)
  85.     local accountName1 = getAccountName (acc1)
  86.     local accountName2 = getAccountName (acc2)
  87.     local nameMatou = getPlayerName(killer)
  88.     local nameMorreu = getPlayerName(source)
  89.     local RCMorreu  = dbPoll(dbQuery(db, "SELECT * FROM rankclan WHERE clan = ?", cMorreu), -1)
  90.     local RCMorreuS = dbPoll(dbQuery(db, "SELECT * FROM rankclansemanal WHERE clan = ?", cMorreu), -1) 
  91.     local RCMatou   = dbPoll(dbQuery(db, "SELECT * FROM rankclan WHERE clan = ?", cMatou), -1)    
  92.     local RCMatouS  = dbPoll(dbQuery(db, "SELECT * FROM rankclansemanal WHERE clan = ?", cMatou), -1)  
  93.     local RSemanalMatou  = dbPoll(dbQuery(db, "SELECT * FROM ranksemanal WHERE conta = ?", accountName2), -1)
  94.     local RSemanalMorreu  = dbPoll(dbQuery(db, "SELECT * FROM ranksemanal WHERE conta = ?", accountName1), -1)
  95.     for i,re in ipairs (RCMorreu) do
  96.         dbExec(db, "UPDATE rankclan SET membros = ?, mortes = ? WHERE clan = ?",
  97.         #exports["group"]:getGroupMembers(cMorreu),re["mortes"]+1, cMorreu)
  98.      end
  99.     for i,re in ipairs (RCMorreuS) do
  100.         dbExec(db, "UPDATE rankclansemanal SET membros = ?, mortes = ? WHERE clan = ?",
  101.         #exports["group"]:getGroupMembers(cMorreu),re["mortes"]+1, cMorreu)
  102.     end
  103.     for i,res in ipairs (RCMorreu) do
  104.         dbExec(db, "UPDATE rankclan SET kdr = ? WHERE clan = ?",
  105.         string.format("%.2f", res["kills"]/res["mortes"]), cMorreu)
  106.     end
  107.     for i,res in ipairs (RCMorreuS) do
  108.         dbExec(db, "UPDATE rankclansemanal SET kdr = ? WHERE clan = ?",
  109.         string.format("%.2f", res["kills"]/res["mortes"]), cMorreu)
  110.     end
  111.     for i,re in ipairs (RCMatou) do
  112.         dbExec(db, "UPDATE rankclan SET membros = ?, kills = ? WHERE clan = ?",
  113.         #exports["group"]:getGroupMembers(cMatou),re["kills"]+1, cMatou)
  114.     end
  115.     for i,re in ipairs (RCMatouS) do
  116.         dbExec(db, "UPDATE rankclansemanal SET membros = ?, kills = ? WHERE clan = ?",
  117.         #exports["group"]:getGroupMembers(cMatou),re["kills"]+1, cMatou)
  118.     end
  119.     for i,res in ipairs (RCMatou) do
  120.         dbExec(db, "UPDATE rankclan SET kdr = ? WHERE clan = ?",
  121.         string.format("%.2f", res["kills"]/res["mortes"]), cMatou)
  122.     end
  123.     for i,res in ipairs (RCMatouS) do
  124.         dbExec(db, "UPDATE rankclansemanal SET kdr = ? WHERE clan = ?",
  125.         string.format("%.2f", res["kills"]/res["mortes"]), cMatou)
  126.     end
  127.     for i,re in ipairs (RSemanalMorreu) do
  128.         dbExec(db, "UPDATE ranksemanal SET nome = ?,deaths = ? WHERE conta = ?",
  129.         nameMorreu,re["deaths"]+1, accountName1)
  130.     end
  131.     for i,re in ipairs (RSemanalMatou) do
  132.         dbExec(db, "UPDATE ranksemanal SET nome = ?, kills = ? WHERE conta = ?",
  133.         nameMatou,re["kills"]+1, accountName2)
  134.     end
  135.     end
  136.     end
  137. end
  138. addEvent("kilLDayZPlayer", true)
  139. addEventHandler("kilLDayZPlayer", getRootElement(), iMorreuMizeravi)
  140.  
  141. function iLoginMizeravi(iSanData)
  142.     if ( iSanData == "logedin" or  iSanData == "Group") then
  143.         local clan = getElementData(source, "Group")
  144.         local accountName = getAccountName (getPlayerAccount(source))
  145.         local Name = getPlayerName(source)
  146.         local cRCS = dbPoll(dbQuery(db, "SELECT * FROM rankclansemanal WHERE clan = ?", clan), -1)
  147.         local cRC = dbPoll(dbQuery(db, "SELECT * FROM rankclan WHERE clan = ?", clan), -1)
  148.         local pRankSemanal = dbPoll(dbQuery(db, "SELECT * FROM ranksemanal WHERE conta = ?", accountName), -1)
  149.         local pRank = dbPoll(dbQuery(db, "SELECT * FROM rank WHERE conta = ?", accountName), -1)
  150.         if clan == nil or clan == false then
  151.         else
  152.         if type(cRCS) == "table" and #cRCS == 0 or not cRCS then
  153.           dbExec(db, "INSERT INTO rankclansemanal(clan,membros,kills,kdr,level,mortes) VALUES(?,?,?,?,?,?)",
  154.           clan, #exports["group"]:getGroupMembers(clan),0,0,0,0);        
  155.         end
  156.         if type(cRC) == "table" and #cRC == 0 or not cRC then
  157.           dbExec(db, "INSERT INTO rankclan(clan,membros,kills,kdr,level,mortes) VALUES(?,?,?,?,?,?)",
  158.           clan, #exports["group"]:getGroupMembers(clan),0,0,0,0);        
  159.         end
  160.         end
  161.         if type(pRankSemanal) == "table" and #pRankSemanal == 0 or not pRankSemanal then
  162.           dbExec(db, "INSERT INTO ranksemanal(nome,conta,kills,deaths,kdr,clan) VALUES(?,?,?,?,?,?)",
  163.           Name,accountName,0,0,0,clan);
  164.         else
  165.           dbExec(db, "UPDATE ranksemanal SET nome = ?,clan = ? WHERE conta = ?",
  166.           Name,clan,accountName);
  167.         end
  168.    end
  169. end
  170. addEventHandler("onElementDataChange", root, iLoginMizeravi)
  171.  
  172. --- Receber nas GUI
  173. function RankDados()
  174.     local TopRank = {}
  175.     local p = dbPoll(dbQuery(db, "SELECT * FROM rank"), -1)
  176.     if type(p) == "table" and #p == 0 or not p then
  177.         else
  178.         for i = 1,#p do
  179.             table.insert(TopRank,{name = p[i].nome,score = p[i].kills, deaths = p[i].deaths,  kdr = p[i].kdr, alivetime = p[i].alivetime, level = p[i].level, expe = p[i].exp, clan = p[i].clan})
  180.         end  
  181.             table.sort(TopRank, function(a,b) return (tonumber(a.score)or 0) > (tonumber(b.score)or 0) end)          
  182.         for k, data in ipairs(TopRank) do
  183.         if k == 101 then break end
  184.             triggerClientEvent(source, "iRanks.RankTesteOpen", source, tostring(data.name), tostring(data.score),tostring(data.deaths),tostring(data.kdr),tostring(data.alivetime),tostring(data.level),tostring(data.expe),tostring(data.clan), tonumber(k))
  185.         end        
  186. end end
  187. addEvent("iRanks.ReceberRank",true)
  188. addEventHandler("iRanks.ReceberRank",root, RankDados)
  189.  
  190. function RankDadosSemanal()
  191.     local TopRankSemanal = {}
  192.     local p = dbPoll(dbQuery(db, "SELECT * FROM ranksemanal"), -1) 
  193.     if type(p) == "table" and #p == 0 or not p then
  194.         else
  195.         for i = 1,#p do
  196.             table.insert(TopRankSemanal,{name = p[i].nome,score = p[i].kills,  kdr = p[i].kdr, clan = p[i].clan})
  197.         end  
  198.             table.sort(TopRankSemanal, function(a,b) return (tonumber(a.score)or 0) > (tonumber(b.score)or 0) end)           
  199.         for k, data in ipairs(TopRankSemanal) do
  200.         if k == 101 then break end
  201.             triggerClientEvent(source, "iRanks.RankSemanal", source, tostring(data.name), tostring(data.score),tostring(data.kdr),tostring(data.clan), tonumber(k))
  202.         end        
  203. end end
  204. addEvent("iRanks.ReceberRankSemanal",true)
  205. addEventHandler("iRanks.ReceberRankSemanal",root, RankDadosSemanal)
  206.  
  207. function RankClanDados()
  208.     local TopClan = {}
  209.     local p = dbPoll(dbQuery(db, "SELECT * FROM rankclan"), -1)
  210.     if type(p) == "table" and #p == 0 or not p then
  211.         else
  212.         for i = 1,#p do
  213.             table.insert(TopClan,{name = p[i].clan,membros = p[i].membros, score = p[i].kills,kdr = p[i].kdr,level = p[i].level})
  214.         end  
  215.             table.sort(TopClan, function(a,b) return (tonumber(a.score)or 0) > (tonumber(b.score)or 0) end)          
  216.         for k, data in ipairs(TopClan) do
  217.         if k == 101 then break end    
  218.             triggerClientEvent(source, "iRanks.RankClanOpen", source,  tonumber(k), tostring(data.name), tostring(data.membros), tostring(data.score),tostring(data.kdr), tostring(data.level))
  219.         end        
  220. end end
  221. addEvent("iRanks.RankClan",true)
  222. addEventHandler("iRanks.RankClan",root, RankClanDados)
  223.  
  224. function RankClanSemanal()
  225.     local TopClan = {}
  226.     local p = dbPoll(dbQuery(db, "SELECT * FROM rankclansemanal"), -1) 
  227.     if type(p) == "table" and #p == 0 or not p then
  228.         else
  229.         for i = 1,#p do
  230.             table.insert(TopClan,{name = p[i].clan,membros = p[i].membros, score = p[i].kills,kdr = p[i].kdr,level = p[i].level})
  231.         end  
  232.             table.sort(TopClan, function(a,b) return (tonumber(a.score)or 0) > (tonumber(b.score)or 0) end)          
  233.         for k, data in ipairs(TopClan) do
  234.         if k == 101 then break end
  235.             triggerClientEvent(source, "iRanks.RankClanSemanal", source,  tonumber(k), tostring(data.name), tostring(data.membros), tostring(data.score),tostring(data.kdr), tostring(data.level))
  236.         end        
  237. end end
  238. addEvent("iRanks.RankClanGetSemanal",true)
  239. addEventHandler("iRanks.RankClanGetSemanal",root, RankClanSemanal)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement