Jump to content

Problema com Banco de dados


Recommended Posts

Bom, eu possuo um sistema de compra de items por uma loja, tudo perfeito sem nenhum erro, porém quando  tento comprar algo, recebo o seguinte erro:


server.lua:14 attempt to compare number with boolean

 

abaixo a parte aonde está dando o erro.
 

function buyItem(player, item, value, amount, count, db)
	if (getElementData(player, "char.money")>=amount) then
		exports.inventario:giveItem(player, item, value, db, 0)
		setElementData(player, "char.money", getElementData(player, "char.money") - amount)
		exports["info"]:showBoxS(player,"Compra efetuada com sucesso","info")
	else
		exports["info"]:showBoxS(player,"Dinheiro insuficiente","error")
	end
end
addEvent("addItem", true)
addEventHandler("addItem", getRootElement(), buyItem)

Alguma solução ? o erro poderia ser devido ao "amount" dps do >= ? por não conter um numeral de 0-1 ? se alguém tiver alguma sugestão..

Link to comment
7 minutes ago, Lord Henry said:

Coloque isso na linha anterior:


if not (getElementData(player, "char.money")) then return end

 

Bom, parou de dar erro, porém agora quando clico pra confirmar a compra do item na loja (no caso comida), não acontece absolutamente nada, o item não vai ao inventário, e também não apresenta nenhum erro...

Bom, consegui resolver, era um Event errado, Erro meu, porém kkk, agora o problema é que consigo comprar o item na loja, só que não está descontando o dinheiro, o item vem de graça, e por exemplo, ele custa "6Reais", quando compra vem 6 Unidades do item, alguma ideia ?

Link to comment
11 minutes ago, DNL291 said:

Onde desconta o dinheiro é por meio da element-data "char.money"? Se não souber a resposta, procure-a.
Provavelmente é dessa forma que manipula o dinheiro do jogador e pode haver erros nessa parte.

Notei que no script todo não há registro de algum "setElementData (char.money)", logo, o getElementData (char.money) nao funciona, talvez este seja o erro ? se sim, aonde basicamente eu deveria adicionar a data?

Link to comment

Este mod foi removido de um backup que não usa o dinheiro nativo do mta, como por exemplo o:

givePlayerMoney(player, 1000)

O que você deve fazer é adaptar esse script para o dinheiro nativo do mta.

Tente usar isto:

function buyItem(player, item, value, amount, count, db)
 	local money = getPlayerMoney(player)
	if (money >= amount) then 
		exports.inventario:giveItem(player, item, value, db, 0)
    		takePlayerMoney(player, amount)
		exports["info"]:showBoxS(player,"Compra efetuada com sucesso","info")
	else
		exports["info"]:showBoxS(player,"Dinheiro insuficiente","error")
	end
end
addEvent("addItem", true)
addEventHandler("addItem", getRootElement(), buyItem)

desculpa se não estiver funcionando, ainda tenho muito o que aprender <:)

Link to comment
7 hours ago, Gustavo Freire said:

Este mod foi removido de um backup que não usa o dinheiro nativo do mta, como por exemplo o:


givePlayerMoney(player, 1000)

O que você deve fazer é adaptar esse script para o dinheiro nativo do mta.

Tente usar isto:


function buyItem(player, item, value, amount, count, db)
 	local money = getPlayerMoney(player)
	if (money >= amount) then 
		exports.inventario:giveItem(player, item, value, db, 0)
    		takePlayerMoney(player, amount)
		exports["info"]:showBoxS(player,"Compra efetuada com sucesso","info")
	else
		exports["info"]:showBoxS(player,"Dinheiro insuficiente","error")
	end
end
addEvent("addItem", true)
addEventHandler("addItem", getRootElement(), buyItem)

desculpa se não estiver funcionando, ainda tenho muito o que aprender <:)

Eu ja fiz essa alteração kkk, li na wiki e chegue ia este mesmo resultado, funciona bem, a questão é que, os items não estão indo para o banco de dados, nas tabelas do mysql até geram os ids de item quando compro algo, porém não estão aparecendo no inventário.

 

Link to comment
  • 2 weeks later...
On 01/10/2020 at 18:27, Rakashy said:

Eu ja fiz essa alteração kkk, li na wiki e chegue ia este mesmo resultado, funciona bem, a questão é que, os items não estão indo para o banco de dados, nas tabelas do mysql até geram os ids de item quando compro algo, porém não estão aparecendo no inventário.

 

function buyItem(player, item, value, amount, count, db)
	if (getElementData(player, "char.money") or 0) >= amount then 
		exports.inventario:giveItem(player, item, value, db, 0)
    		takePlayerMoney(player, amount)
		exports["info"]:showBoxS(player,"Compra efetuada com sucesso","info")
	else
		exports["info"]:showBoxS(player,"Dinheiro insuficiente","error")
	end
end
addEvent("addItem", true)
addEventHandler("addItem", getRootElement(), buyItem)

tente isso

  • Thanks 1
Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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