Jump to content

Erro de Lógica? Talvez...


Recommended Posts

Então, surgiu-me uma dúvida em um código em desenvolvimento - o player quando aperta pra comprar uma determinada skin, se o mesmo não não tem dinheiro, a principio não ocorre nada, porém se ele clicar uma segunda vez, a skin é setada nele, com uma informação de que ele já tinha a mesma skin. Então basicamente o que acontece: Primeiro a skin é setada no banco de dados, e não acontece nada com o player, mas já na segunda vez, a tabela é consultada, setando automaticamente a skin pro player.

function deltascrbuy(skinID, price, skinName) --// ESTÃO VINDO DO CLIENT
	local playerMoney = getPlayerMoney(source)
	local playerAccount = getAccountName(getPlayerAccount(source))
	if updateSkins(source, playerAccount, tostring(skinID)) then
		if playerMoney >= price then
			takePlayerMoney(source, price)
			setElementModel(source, skinID)
			outputChatBox("INFO: #FFFFFFVocê comprou a "..skinName.." por R$"..price.."", source, 200, 50, 0, true)
		else
			outputChatBox("ERRO: #FFFFFFVocê não possui a quantia de R$"..price.." para comprar a "..skinName.."", source, 200, 50, 0, true)
		end
	else
		setElementModel(source, skinID)
	end
end
addEvent("DeltaSCR:Buy", true)
addEventHandler("DeltaSCR:Buy", root, deltascrbuy)

function updateSkins(thePlayer, data, skinID) --// AQUI A FUNÇÃO QUE VERIFICA A TABELA
	local db = executeSQLQuery("SELECT * FROM PurchasedSkins")
	for i = 1, #db do
		if db[i].AccountName == data then
			local skinData = db[i].Models
			if string.find (skinData, skinID) then
				outputChatBox("INFO: #FFFFFFVocê já possuia essa skin, então ela foi setada em você", thePlayer, 200, 50, 0, true)
				return false
			else
				skinData = db[i].Models..","..skinID
				executeSQLQuery ("UPDATE PurchasedSkins SET Models=? WHERE AccountName=?", skinData, data)
				return true
			end
		end
	end
	executeSQLQuery ("INSERT INTO PurchasedSkins(AccountName, Models) VALUES(?, ?)", data, skinID)
	return true
end

 

Link to comment
  • DNL291 locked this topic
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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