Ir para conteúdo

Featured Replies

Postado

Bom dia, eu achei um script de ban feito pelo Omega que atende aos meus requisitos. Porem ele da um erro ao tentar usar no sv. Uso tfs 0.4, 8.60

Parece q foi testado em sqlite, eu uso mysql

Erro:

[9/3/2019 4:53:59] [Error - TalkAction Interface] 
[9/3/2019 4:53:59] data/talkactions/scripts/banunban.lua:onSay
[9/3/2019 4:53:59] Description: 
[9/3/2019 4:53:59] data/lib/004-database.lua:100: [Result:free] Result not set!
[9/3/2019 4:53:59] stack traceback:
[9/3/2019 4:53:59] 	[C]: in function 'error'
[9/3/2019 4:53:59] 	data/lib/004-database.lua:100: in function 'free'
[9/3/2019 4:53:59] 	data/talkactions/scripts/banunban.lua:12: in function 'isBanned'
[9/3/2019 4:53:59] 	data/talkactions/scripts/banunban.lua:38: in function <data/talkactions/scripts/banunban.lua:16>

Script:

Spoiler

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()
	end
	query:free()
	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, 8, '..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

 

 

Alguem pode ajudar? Rep+

@Vodkart @WooX 

Editado por Jhonny Bravo (veja o histórico de edições)

Resolvido por Yan Liima

Ir para solução
  • Respostas 10
  • Visualizações 630
  • 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
3 horas atrás, Jhonny Bravo disse:

Mas eu postei ta em spoiler

Parece q o erro parou mas quando tento dar ban fala q deu mais n kicka bem bane o perso. Creio q é pelo fato de estar pra sqlite

 

Não tinha visto. Porque ao invés de usar o script você não utiliza a função que já vem na source?

Postado
  • Autor
Em 19/03/2019 em 01:54, WooX disse:

Não tinha visto. Porque ao invés de usar o script você não utiliza a função que já vem na source?

 

acho BAN por comando algo bem util. Tenho algumas ideias otimas para isso, so q precisava da script funcionando

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