Jump to content

alguem pode me ajudar com o banco de dados?


Recommended Posts

erro é esse 


local sql = dbConnect( 'sqlite', 'MrxSQL.db' )



addEventHandler("onResourceStart", resourceRoot,
	function()
		dbExec(sql, "CREATE TABLE IF NOT EXISTS dinheiroatm ( conta TEXT, quantidade INT )")
		for k, v in ipairs(getElementsByType("player")) do
			local accounts = getPlayerAccount ( v )
			if not isGuestAccount(accounts) then
				local conta = getAccountName(accounts)
				local target = getPlayerFromAccountName(conta)
				local qh = dbQuery(sql, "SELECT quantidade FROM dinheiroatm WHERE conta=?", conta)
				local result = dbPoll(qh, -1)
				if #result ~= 0 then
					setElementData(target,"Mrx:moneyatm",result[1]["quantidade"])
				else
					dbFree(dbQuery(sql, "INSERT INTO dinheiroatm ( conta, quantidade ) VALUES ( '"..conta.."', '0' )"))
					setElementData(target,"Mrx:moneyatm",0)
				end
			end	
		end
	end
)

addEventHandler("onPlayerLogin", root,
	function(_, theCurrentAccount)
		local conta = getAccountName(theCurrentAccount)
		local target = getPlayerFromAccountName(conta)
		if isElement(target) then
			local qh = dbQuery(sql, "SELECT * FROM dinheiroatm WHERE conta=?", conta)
			local result = dbPoll(qh, -1)
			if #result ~= 0 then
				setElementData(target,"Mrx:moneyatm",result[1]["quantidade"])
			else
				dbFree(dbQuery(sql, "INSERT INTO dinheiroatm ( conta, quantidade ) VALUES ( '"..conta.."', '0' )"))
				setElementData(target,"Mrx:moneyatm",0)
			end
		end
	end
)

addEventHandler("onPlayerQuit", root,
	function()
		local conta = getPlayerAccount(source)
		if not isGuestAccount(conta) then
			local qh = dbQuery(sql, "SELECT quantidade FROM dinheiroatm WHERE conta=?", getAccountName(conta))
			local result = dbPoll(qh, -1)
			if #result ~= 0 then
				local money = getElementData(source,"Mrx:moneyatm")
				dbExec(sql, "UPDATE dinheiroatm SET quantidade=? WHERE conta=?", money, getAccountName(conta))
			else
				dbFree(dbQuery(sql, "INSERT INTO dinheiroatm ( conta, quantidade ) VALUES ( '"..getAccountName(conta).."', 0 )"))
			end
		end
	end
)

addEvent("Mrx:depositoatm", true)
addEventHandler("Mrx:depositoatm", root, 
	function (valor)
	local valor = tonumber(valor)
		if (not valor or valor == " " or valor == "" or (valor and (tostring(valor):sub(1,1) == "-"))) then return end
			if not isGuestAccount(getPlayerAccount(source)) then
				if tonumber(getPlayerMoney(source)) >= valor then
					local money = getElementData(source,"Mrx:moneyatm") or 0
					setElementData(source, "Mrx:moneyatm", money + valor)
					takePlayerMoney ( source, valor )
				else
					outputChatBox("#7cc576[BANCO]#FFFFFF Você não possui essa quantidade para depositar.", source, 255, 0, 0,true)
			end
		end
	end
)

addEvent("Mrx:saqueoatm", true)
addEventHandler("Mrx:saqueoatm", root, 
	function (valor)
	local valor = tonumber(valor)
		if (not valor or valor == " " or valor == "" or (valor and (tostring(valor):sub(1,1) == "-"))) then return end
			if not isGuestAccount(getPlayerAccount(source)) then
				if tonumber(getElementData(source,"Mrx:moneyatm")) >= tonumber(valor) then
					local money = getElementData(source,"Mrx:moneyatm") or 0
					setElementData(source, "Mrx:moneyatm", money - valor)
					givePlayerMoney(source, valor)
				else
					outputChatBox("#7cc576[BANCO]#FFFFFF Você não possui essa quantidade para sacar.", source, 255, 0, 0,true)
			end
		end
	end
)

addEvent("Mrx:transfere", true)
addEventHandler("Mrx:transfere", root, 
	function (valor, name)
	local valor = tonumber(valor)
		if (not valor or valor == " " or valor == "" or (valor and (tostring(valor):sub(1,1) == "-"))) then return end
		if name then
			target = getPlayerFromPartialName(name)
		if target == false or target == nil then
			outputChatBox("#7cc576[BANCO]#FFFFFF Jogador não localizado.", source, 255, 255, 255, true)
		return
	end
			if not isGuestAccount(getPlayerAccount(source)) then
			if (source) ~= (target) then
				if tonumber(getElementData(source,"Mrx:moneyatm")) >= (valor) then
					local money = getElementData(source,"Mrx:moneyatm") or 0
					local quant = getElementData(target,"Mrx:moneyatm") or 0
					setElementData(source, "Mrx:moneyatm", money - valor)
					setElementData(target, "Mrx:moneyatm", quant + valor)
					outputChatBox("#7cc576[BANCO]#FFFFFF O jogador "..getPlayerName(source).."#FFFFFF transferiu para sua conta $"..convertNumber(valor)..".", target, 255, 255, 255, true)
					outputChatBox("#7cc576[BANCO]#FFFFFF Você transferiu $"..convertNumber(valor).."#FFFFFF para a conta do jogador "..getPlayerName(target).."#FFFFFF.", source, 255, 255, 255, true)
				else
					outputChatBox("#7cc576[BANCO]#FFFFFF Você não possui essa quantidade para transferir.", source, 255, 0, 0,true)
					end
				end
			end
		end
	end
)

function convertNumber ( number )  
	local formatted = number  
	while true do      
		formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')    
		if ( k==0 ) then      
			break   
		end  
	end  
	return formatted
end

addEventHandler("onPlayerLogout", root,
	function()
		setElementData(source,"Mrx:moneyatm",0)
	end
)


function getPlayerFromPartialName(name)
    local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil
    if name then
        for _, player in ipairs(getElementsByType("player")) do
            local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower()
            if name_:find(name, 1, true) then
                return player
            end
        end
    end
end

function getPlayerFromAccountName(name) 
    local acc = getAccount (name)
    if name and acc and not isGuestAccount (acc) then
        return getAccountPlayer (acc)
    else
        return false
    end
end

 

 

8InOvLp.png

Link to comment
  • Other Languages Moderators

Faça a conexão ser global em vez de local e coloque ela junto do onResourceStart.

Dessa forma:

addEventHandler("onResourceStart", resourceRoot,
	function()
		sql = dbConnect( "sqlite", "MrxSQL.db" )	
		dbExec(sql, "CREATE TABLE IF NOT EXISTS dinheiroatm ( conta TEXT, quantidade INT )")
		for k, v in ipairs(getElementsByType("player")) do
			local accounts = getPlayerAccount ( v )
			if not isGuestAccount(accounts) then
				local conta = getAccountName(accounts)
				local target = getPlayerFromAccountName(conta)
				local qh = dbQuery(sql, "SELECT quantidade FROM dinheiroatm WHERE conta=?", conta)
				local result = dbPoll(qh, -1)
				if #result ~= 0 then
					setElementData(target,"Mrx:moneyatm",result[1]["quantidade"])
				else
					dbFree(dbQuery(sql, "INSERT INTO dinheiroatm ( conta, quantidade ) VALUES ( '"..conta.."', '0' )"))
					setElementData(target,"Mrx:moneyatm",0)
				end
			end	
		end
	end
)

addEventHandler("onPlayerLogin", root,
	function(_, theCurrentAccount)
		local conta = getAccountName(theCurrentAccount)
		local target = getPlayerFromAccountName(conta)
		if isElement(target) then
			local qh = dbQuery(sql, "SELECT * FROM dinheiroatm WHERE conta=?", conta)
			local result = dbPoll(qh, -1)
			if #result ~= 0 then
				setElementData(target,"Mrx:moneyatm",result[1]["quantidade"])
			else
				dbFree(dbQuery(sql, "INSERT INTO dinheiroatm ( conta, quantidade ) VALUES ( '"..conta.."', '0' )"))
				setElementData(target,"Mrx:moneyatm",0)
			end
		end
	end
)

addEventHandler("onPlayerQuit", root,
	function()
		local conta = getPlayerAccount(source)
		if not isGuestAccount(conta) then
			local qh = dbQuery(sql, "SELECT quantidade FROM dinheiroatm WHERE conta=?", getAccountName(conta))
			local result = dbPoll(qh, -1)
			if #result ~= 0 then
				local money = getElementData(source,"Mrx:moneyatm")
				dbExec(sql, "UPDATE dinheiroatm SET quantidade=? WHERE conta=?", money, getAccountName(conta))
			else
				dbFree(dbQuery(sql, "INSERT INTO dinheiroatm ( conta, quantidade ) VALUES ( '"..getAccountName(conta).."', 0 )"))
			end
		end
	end
)

addEvent("Mrx:depositoatm", true)
addEventHandler("Mrx:depositoatm", root, 
	function (valor)
	local valor = tonumber(valor)
		if (not valor or valor == " " or valor == "" or (valor and (tostring(valor):sub(1,1) == "-"))) then return end
			if not isGuestAccount(getPlayerAccount(source)) then
				if tonumber(getPlayerMoney(source)) >= valor then
					local money = getElementData(source,"Mrx:moneyatm") or 0
					setElementData(source, "Mrx:moneyatm", money + valor)
					takePlayerMoney ( source, valor )
				else
					outputChatBox("#7cc576[BANCO]#FFFFFF Você não possui essa quantidade para depositar.", source, 255, 0, 0,true)
			end
		end
	end
)

addEvent("Mrx:saqueoatm", true)
addEventHandler("Mrx:saqueoatm", root, 
	function (valor)
	local valor = tonumber(valor)
		if (not valor or valor == " " or valor == "" or (valor and (tostring(valor):sub(1,1) == "-"))) then return end
			if not isGuestAccount(getPlayerAccount(source)) then
				if tonumber(getElementData(source,"Mrx:moneyatm")) >= tonumber(valor) then
					local money = getElementData(source,"Mrx:moneyatm") or 0
					setElementData(source, "Mrx:moneyatm", money - valor)
					givePlayerMoney(source, valor)
				else
					outputChatBox("#7cc576[BANCO]#FFFFFF Você não possui essa quantidade para sacar.", source, 255, 0, 0,true)
			end
		end
	end
)

addEvent("Mrx:transfere", true)
addEventHandler("Mrx:transfere", root, 
	function (valor, name)
	local valor = tonumber(valor)
		if (not valor or valor == " " or valor == "" or (valor and (tostring(valor):sub(1,1) == "-"))) then return end
		if name then
			target = getPlayerFromPartialName(name)
		if target == false or target == nil then
			outputChatBox("#7cc576[BANCO]#FFFFFF Jogador não localizado.", source, 255, 255, 255, true)
		return
	end
			if not isGuestAccount(getPlayerAccount(source)) then
			if (source) ~= (target) then
				if tonumber(getElementData(source,"Mrx:moneyatm")) >= (valor) then
					local money = getElementData(source,"Mrx:moneyatm") or 0
					local quant = getElementData(target,"Mrx:moneyatm") or 0
					setElementData(source, "Mrx:moneyatm", money - valor)
					setElementData(target, "Mrx:moneyatm", quant + valor)
					outputChatBox("#7cc576[BANCO]#FFFFFF O jogador "..getPlayerName(source).."#FFFFFF transferiu para sua conta $"..convertNumber(valor)..".", target, 255, 255, 255, true)
					outputChatBox("#7cc576[BANCO]#FFFFFF Você transferiu $"..convertNumber(valor).."#FFFFFF para a conta do jogador "..getPlayerName(target).."#FFFFFF.", source, 255, 255, 255, true)
				else
					outputChatBox("#7cc576[BANCO]#FFFFFF Você não possui essa quantidade para transferir.", source, 255, 0, 0,true)
					end
				end
			end
		end
	end
)

function convertNumber ( number )  
	local formatted = number  
	while true do      
		formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')    
		if ( k==0 ) then      
			break   
		end  
	end  
	return formatted
end

addEventHandler("onPlayerLogout", root,
	function()
		setElementData(source,"Mrx:moneyatm",0)
	end
)


function getPlayerFromPartialName(name)
    local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil
    if name then
        for _, player in ipairs(getElementsByType("player")) do
            local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower()
            if name_:find(name, 1, true) then
                return player
            end
        end
    end
end

function getPlayerFromAccountName(name) 
    local acc = getAccount (name)
    if name and acc and not isGuestAccount (acc) then
        return getAccountPlayer (acc)
    else
        return false
    end
end

 

  • Like 1
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...