Jump to content

Recommended Posts

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
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
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
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 by Lord Henry
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...