Ir para conteúdo

Featured Replies

Postado

tente trocar essa função:

 

function isBanned(GUID)
	local query = db.getResult("SELECT active FROM bans WHERE param = "..GUID)
	if query:getID() > -1 then
		repeat
			if query:getDataInt("active") == 1 then
				return true
			end
		until not query:next()
	end
	query:free()
	return false
end

 

por essa que eu refiz:

 

 

function isBanned(guid)
	local qry = db.getResult("SELECT `value` FROM `bans` WHERE `param` = " .. guid .. " AND `active` = 1;")
	if (qry:getID() ~= -1) then
			return true
	end
	return false
end

 

  • Respostas 10
  • Visualizações 629
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @Lyu god Segue a correção meninas, e vê se funciona: local reasons = {[1] = 2, [2] = 5, [3] = 12, [4] = 19} function isBanned(GUID) local query = db.getResult("SELECT active FROM bans WHERE

Posted Images

Postado
  • Autor
  Em 25/03/2019 em 12:57, Vodkart disse:

tente trocar essa função:

 


function isBanned(GUID)
	local query = db.getResult("SELECT active FROM bans WHERE param = "..GUID)
	if query:getID() > -1 then
		repeat
			if query:getDataInt("active") == 1 then
				return true
			end
		until not query:next()
	end
	query:free()
	return false
end

 

por essa que eu refiz:

 

 


function isBanned(guid)
	local qry = db.getResult("SELECT `value` FROM `bans` WHERE `param` = " .. guid .. " AND `active` = 1;")
	if (qry:getID() ~= -1) then
			return true
	end
	return false
end

 

 

N funcionou. N da nenhum erro, o comando funciona, da o retorno da mensagem dizendo que o jogador foi banido. Mas ele n é kikado e nem é banido

Postado

query:free() somente se a consulta for um sucesso amiguinhos, segue abaixo a correção :

function isBanned(GUID)
	local query = db.getResult("SELECT active FROM bans WHERE param = "..GUID)
	if query:getID() > -1 then
		repeat
			if query:getDataInt("active") == 1 then
				return true
			end
		until not query:next()

		query:free() -- somente se query:getID() for maior que -1
	end
	
	return false
end
Postado
  • Autor
  Em 26/03/2019 em 19:52, Lyu disse:

query:free() somente se a consulta for um sucesso amiguinhos, segue abaixo a correção :


function isBanned(GUID)
	local query = db.getResult("SELECT active FROM bans WHERE param = "..GUID)
	if query:getID() > -1 then
		repeat
			if query:getDataInt("active") == 1 then
				return true
			end
		until not query:next()

		query:free() -- somente se query:getID() for maior que -1
	end
	
	return false
end

 

Boa kkkkk funcionou, kikou o jogador e adicionou na tabela de bans. Porem ainda da pra logar, mas se eu usar o comando tentando banir dnv diz que esta banido.IMG-20190326-WA0022.thumb.jpg.f6eeada5e206f87b392059a351aaf304.jpg

 

Postado
  • Solução

@Lyu god <3

Segue a correção meninas, e vê se funciona:

local reasons = {[1] = 2, [2] = 5, [3] = 12, [4] = 19}

function isBanned(GUID)
	local query = db.getResult("SELECT active FROM bans WHERE param = "..GUID)
	if query:getID() > -1 then
		repeat
			if query:getDataInt("active") == 1 then
				return true
			end
		until not query:next()

		query:free() -- somente se query:getID() for maior que -1
	end
	
	return false
end

function onSay(cid, words, param)
	if param:lower() == "reasons" then
		return doPlayerSendTextMessage(cid, 27, "1 - unsuitable name, 2 - spamming, 3 - use of unnoficial software, 4 - destructive behaviour.")
	end
	local param = string.explode(param, ',')	
	if words == "!ban" then		
		local adminid = getPlayerGUID(cid)
		local player_name = param[1]
		local days = type(tonumber(param[2])) == 'number' and tonumber(param[2]) * 24 * 3600 or false
		local comment = param[3]
		local reason = reasons[tonumber(param[4])] or 19
		if not param[1] then
			doPlayerSendTextMessage(cid, 27, "Command requires parameters: name, days, comment, reason.")
		elseif not getPlayerGUIDByName(player_name) then
			doPlayerSendTextMessage(cid, 27, "Invalid player.")
		elseif not days then
			doPlayerSendTextMessage(cid, 27, "Invalid number of days.")
		else
			if not comment then
				comment = "No comment was added"
			end
			local player_to_ban = getPlayerGUIDByName(player_name)
			if isBanned(player_to_ban) then
				return doPlayerSendTextMessage(cid, 27, "This player is already banned.")
			end
			local func = db.query or db.executeQuery
			if func('INSERT INTO bans (type, value, param, active, expires, added, admin_id, comment, reason, action) VALUES (3, 3, '..player_to_ban..', 1, '..os.time() + days..', '..os.time()..', '..adminid..', "'..comment..'", '..reason..', 2)') then
				doPlayerSendTextMessage(cid, 27, "Player "..player_name.." has been banned.")
				local kick = getCreatureByName(player_name)
				if kick then
					doRemoveCreature(kick)
				end
			else
				doPlayerSendTextMessage(cid, 27, "Error while banning.")
			end
		end
	elseif words == "!unban" then
		local player_name = param[1]
		local unban_player = getPlayerGUIDByName(player_name)
		if unban_player then
			local func = db.query or db.executeQuery
			if not isBanned(unban_player) then
				return doPlayerSendTextMessage(cid, 27, "Player is currently not banned.")
			end
			if func("UPDATE bans SET active = 0 WHERE param = "..unban_player) then
				doPlayerSendTextMessage(cid, 27, "Player "..player_name.." has been successfully unbanned.")
			else
				doPlayerSendTextMessage(cid, 27, "Error while unbanning.")
			end
		else
			doPlayerSendTextMessage(cid, 27, "Invalid player name specified.")
		end
	end
	return true
end

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo