Lukkas2201 Posted October 31, 2018 Share Posted October 31, 2018 Olá, estou aqui novamente para falar sobre o sistema de salvamento de um rank que tenho, criei um topico esses dias e me disseram que eu teria que mexer com data base, porém eu estou a dias quebrando a cabeça e não sai nada, 2 madrugadas perdidas só tentando e não da nada, gostaria que alguem que tenha conhecimento com isso, fizesse pra mim, estou disposto até a pagar pelo serviço, ultimamente não tenho muito tempo pois trabalho, e o pouco tempo que tenho é para descansar, então se alguem puder, me mande algum contato para podermos conversar (sou brasileiro e só sei falar português) Link to comment
Jonas^ Posted October 31, 2018 Share Posted October 31, 2018 4 minutes ago, Lukkas2201 said: Olá, estou aqui novamente para falar sobre o sistema de salvamento de um rank que tenho, criei um topico esses dias e me disseram que eu teria que mexer com data base, porém eu estou a dias quebrando a cabeça e não sai nada, 2 madrugadas perdidas só tentando e não da nada, gostaria que alguem que tenha conhecimento com isso, fizesse pra mim, estou disposto até a pagar pelo serviço, ultimamente não tenho muito tempo pois trabalho, e o pouco tempo que tenho é para descansar, então se alguem puder, me mande algum contato para podermos conversar (sou brasileiro e só sei falar português) Por que ao invés de pagar, você não usa uma base de um sistema de rank que tem no fórum que o Lord fez, ele até passou o tópico no outro tópico lá, só você dar uma lida, você só precisa fazer as coisas que você quer, ele já ta salvando na internal.db 8 minutes ago, Lukkas2201 said: Olá, estou aqui novamente para falar sobre o sistema de salvamento de um rank que tenho, criei um topico esses dias e me disseram que eu teria que mexer com data base, porém eu estou a dias quebrando a cabeça e não sai nada, 2 madrugadas perdidas só tentando e não da nada, gostaria que alguem que tenha conhecimento com isso, fizesse pra mim, estou disposto até a pagar pelo serviço, ultimamente não tenho muito tempo pois trabalho, e o pouco tempo que tenho é para descansar, então se alguem puder, me mande algum contato para podermos conversar (sou brasileiro e só sei falar português) CLIENT-SIDE scoreWindow = guiCreateWindow (0.3, 0.2, 0.4, 0.6, "Ranking Kills/Death (by: LordHenry)", true) scoreGrid = guiCreateGridList (0, 0.05, 1, 0.85, true, scoreWindow) guiWindowSetSizable (scoreWindow, false) guiGridListAddColumn (scoreGrid, "Account", 0.45) guiGridListAddColumn (scoreGrid, "Kills", 0.13) guiGridListAddColumn (scoreGrid, "Deaths", 0.13) guiGridListAddColumn (scoreGrid, "Ratio", 0.18) closeGrid = guiCreateButton (0.2, 0.91, 0.6, 0.09, "Fechar Painel", true, scoreWindow) guiSetVisible (scoreWindow, false) function scoreInfo (accounts, kills, deaths, ratio) guiSetVisible (scoreWindow, true) guiSetVisible (closeGrid, true) showCursor (true) if accounts then for i, v in ipairs (accounts) do guiGridListAddRow (scoreGrid, accounts[i], kills[i], deaths[i], ratio[i]) end end end addEvent ("showRank", true) addEventHandler ("showRank", getRootElement(), scoreInfo) function clickOptions (button, state, absoluteX, absoluteY) if button == "left" then if source == closeGrid then guiSetVisible (scoreWindow, false) showCursor (false) guiGridListClear (scoreGrid) end end end addEventHandler ("onClientGUIClick", getRootElement(), clickOptions) function sendScores () if not guiGetVisible (scoreWindow) then triggerServerEvent ("getRank", localPlayer) end end addCommandHandler ("rank", sendScores) SERVER-SIDE function recebeKills () local data = getAccounts () local accTable = {} local killsTable = {} local deathsTable = {} local kill = 0 local death = 0 if not data[1] then triggerClientEvent (client, "showRank", client) return end for i, acc in ipairs (data) do table.insert (accTable, getAccountName (data[i])) if not getAccountData (data[i], "kills") then table.insert (killsTable, "0") else table.insert (killsTable, tostring (getAccountData (data[i], "kills"))) end if not getAccountData (data[i], "deaths") then table.insert (deathsTable, "0") else table.insert (deathsTable, tostring (getAccountData (data[i], "deaths"))) end end triggerClientEvent (client, "showRank", client, accTable, killsTable, deathsTable) end addEvent ("getRank", true) addEventHandler ("getRank", getRootElement(), recebeKills) function salvaKills (ammo, killer, weapon, bodypart, stealth) if not isGuestAccount (getPlayerAccount(source)) then local deaths = getAccountData (getPlayerAccount(source), "deaths") if deaths then setAccountData (getPlayerAccount(source), "deaths", deaths + 1) else setAccountData (getPlayerAccount(source), "deaths", 1) end end if killer and killer ~= source then if getElementType (killer) == "player" then if not isGuestAccount (getPlayerAccount(killer)) then local kills = getAccountData (getPlayerAccount(killer), "kills") if kills then setAccountData (getPlayerAccount(killer), "kills", kills + 1) else setAccountData (getPlayerAccount(killer), "kills", 1) end end elseif getElementType (killer) == "vehicle" then killer = getVehicleController (killer) if killer then if not isGuestAccount (getPlayerAccount(killer)) then local kills = getAccountData (getPlayerAccount(killer), "kills") if kills then setAccountData (getPlayerAccount(killer), "kills", kills + 1) else setAccountData (getPlayerAccount(killer), "kills", 1) end end end end end end addEventHandler ("onPlayerWasted", getRootElement(), salvaKills) Link to comment
Lukkas2201 Posted October 31, 2018 Author Share Posted October 31, 2018 11 hours ago, OverKILL said: Por que ao invés de pagar, você não usa uma base de um sistema de rank que tem no fórum que o Lord fez, ele até passou o tópico no outro tópico lá, só você dar uma lida, você só precisa fazer as coisas que você quer, ele já ta salvando na internal.db CLIENT-SIDE scoreWindow = guiCreateWindow (0.3, 0.2, 0.4, 0.6, "Ranking Kills/Death (by: LordHenry)", true) scoreGrid = guiCreateGridList (0, 0.05, 1, 0.85, true, scoreWindow) guiWindowSetSizable (scoreWindow, false) guiGridListAddColumn (scoreGrid, "Account", 0.45) guiGridListAddColumn (scoreGrid, "Kills", 0.13) guiGridListAddColumn (scoreGrid, "Deaths", 0.13) guiGridListAddColumn (scoreGrid, "Ratio", 0.18) closeGrid = guiCreateButton (0.2, 0.91, 0.6, 0.09, "Fechar Painel", true, scoreWindow) guiSetVisible (scoreWindow, false) function scoreInfo (accounts, kills, deaths, ratio) guiSetVisible (scoreWindow, true) guiSetVisible (closeGrid, true) showCursor (true) if accounts then for i, v in ipairs (accounts) do guiGridListAddRow (scoreGrid, accounts[i], kills[i], deaths[i], ratio[i]) end end end addEvent ("showRank", true) addEventHandler ("showRank", getRootElement(), scoreInfo) function clickOptions (button, state, absoluteX, absoluteY) if button == "left" then if source == closeGrid then guiSetVisible (scoreWindow, false) showCursor (false) guiGridListClear (scoreGrid) end end end addEventHandler ("onClientGUIClick", getRootElement(), clickOptions) function sendScores () if not guiGetVisible (scoreWindow) then triggerServerEvent ("getRank", localPlayer) end end addCommandHandler ("rank", sendScores) SERVER-SIDE function recebeKills () local data = getAccounts () local accTable = {} local killsTable = {} local deathsTable = {} local kill = 0 local death = 0 if not data[1] then triggerClientEvent (client, "showRank", client) return end for i, acc in ipairs (data) do table.insert (accTable, getAccountName (data[i])) if not getAccountData (data[i], "kills") then table.insert (killsTable, "0") else table.insert (killsTable, tostring (getAccountData (data[i], "kills"))) end if not getAccountData (data[i], "deaths") then table.insert (deathsTable, "0") else table.insert (deathsTable, tostring (getAccountData (data[i], "deaths"))) end end triggerClientEvent (client, "showRank", client, accTable, killsTable, deathsTable)endaddEvent ("getRank", true)addEventHandler ("getRank", getRootElement(), recebeKills)function salvaKills (ammo, killer, weapon, bodypart, stealth) if not isGuestAccount (getPlayerAccount(source)) then local deaths = getAccountData (getPlayerAccount(source), "deaths") if deaths then setAccountData (getPlayerAccount(source), "deaths", deaths + 1) else setAccountData (getPlayerAccount(source), "deaths", 1) end end if killer and killer ~= source then if getElementType (killer) == "player" then if not isGuestAccount (getPlayerAccount(killer)) then local kills = getAccountData (getPlayerAccount(killer), "kills") if kills then setAccountData (getPlayerAccount(killer), "kills", kills + 1) else setAccountData (getPlayerAccount(killer), "kills", 1) end end elseif getElementType (killer) == "vehicle" then killer = getVehicleController (killer) if killer then if not isGuestAccount (getPlayerAccount(killer)) then local kills = getAccountData (getPlayerAccount(killer), "kills") if kills then setAccountData (getPlayerAccount(killer), "kills", kills + 1) else setAccountData (getPlayerAccount(killer), "kills", 1) end end end end endendaddEventHandler ("onPlayerWasted", getRootElement(), salvaKills) na internal? o certo não seria no registry.db? mas é o seguinte, não sei se esse codigo que vc me passou faz isso, mas meu rank ele ja atualiza e faz tudo sozinho, o unico problema é que quando o player sai do servidor, o nome dele some no rank 11 hours ago, OverKILL said: Por que ao invés de pagar, você não usa uma base de um sistema de rank que tem no fórum que o Lord fez, ele até passou o tópico no outro tópico lá, só você dar uma lida, você só precisa fazer as coisas que você quer, ele já ta salvando na internal.db CLIENT-SIDE scoreWindow = guiCreateWindow (0.3, 0.2, 0.4, 0.6, "Ranking Kills/Death (by: LordHenry)", true) scoreGrid = guiCreateGridList (0, 0.05, 1, 0.85, true, scoreWindow) guiWindowSetSizable (scoreWindow, false) guiGridListAddColumn (scoreGrid, "Account", 0.45) guiGridListAddColumn (scoreGrid, "Kills", 0.13) guiGridListAddColumn (scoreGrid, "Deaths", 0.13) guiGridListAddColumn (scoreGrid, "Ratio", 0.18) closeGrid = guiCreateButton (0.2, 0.91, 0.6, 0.09, "Fechar Painel", true, scoreWindow) guiSetVisible (scoreWindow, false) function scoreInfo (accounts, kills, deaths, ratio) guiSetVisible (scoreWindow, true) guiSetVisible (closeGrid, true) showCursor (true) if accounts then for i, v in ipairs (accounts) do guiGridListAddRow (scoreGrid, accounts[i], kills[i], deaths[i], ratio[i]) end end end addEvent ("showRank", true) addEventHandler ("showRank", getRootElement(), scoreInfo) function clickOptions (button, state, absoluteX, absoluteY) if button == "left" then if source == closeGrid then guiSetVisible (scoreWindow, false) showCursor (false) guiGridListClear (scoreGrid) end end end addEventHandler ("onClientGUIClick", getRootElement(), clickOptions) function sendScores () if not guiGetVisible (scoreWindow) then triggerServerEvent ("getRank", localPlayer) end end addCommandHandler ("rank", sendScores) SERVER-SIDE function recebeKills () local data = getAccounts () local accTable = {} local killsTable = {} local deathsTable = {} local kill = 0 local death = 0 if not data[1] then triggerClientEvent (client, "showRank", client) return end for i, acc in ipairs (data) do table.insert (accTable, getAccountName (data[i])) if not getAccountData (data[i], "kills") then table.insert (killsTable, "0") else table.insert (killsTable, tostring (getAccountData (data[i], "kills"))) end if not getAccountData (data[i], "deaths") then table.insert (deathsTable, "0") else table.insert (deathsTable, tostring (getAccountData (data[i], "deaths"))) end end triggerClientEvent (client, "showRank", client, accTable, killsTable, deathsTable) end addEvent ("getRank", true) addEventHandler ("getRank", getRootElement(), recebeKills) function salvaKills (ammo, killer, weapon, bodypart, stealth) if not isGuestAccount (getPlayerAccount(source)) then local deaths = getAccountData (getPlayerAccount(source), "deaths") if deaths then setAccountData (getPlayerAccount(source), "deaths", deaths + 1) else setAccountData (getPlayerAccount(source), "deaths", 1) end end if killer and killer ~= source then if getElementType (killer) == "player" then if not isGuestAccount (getPlayerAccount(killer)) then local kills = getAccountData (getPlayerAccount(killer), "kills") if kills then setAccountData (getPlayerAccount(killer), "kills", kills + 1) else setAccountData (getPlayerAccount(killer), "kills", 1) end end elseif getElementType (killer) == "vehicle" then killer = getVehicleController (killer) if killer then if not isGuestAccount (getPlayerAccount(killer)) then local kills = getAccountData (getPlayerAccount(killer), "kills") if kills then setAccountData (getPlayerAccount(killer), "kills", kills + 1) else setAccountData (getPlayerAccount(killer), "kills", 1) end end end end end end addEventHandler ("onPlayerWasted", getRootElement(), salvaKills) o ruim é que eu realmente não sei fazer isso, e não tenho tempo pra ficar tentando, se é que me entende Link to comment
Other Languages Moderators Lord Henry Posted October 31, 2018 Other Languages Moderators Share Posted October 31, 2018 (edited) 2 hours ago, Lukkas2201 said: na internal? o certo não seria no registry.db? Ele salva no internal pois os dados de kills e deaths do player estão sendo salvas na conta dele, e não no banco de dados do resource. Edited October 31, 2018 by Lord Henry Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now