Sistema De Enquete E De Report (com Anti-flood)

Eventide
em Actions e Talkactions

Eventide

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 08/10/08Posts: 189

primeiro, gostaria de dizer que ambos os scripts foram feitos para este duelo:

http://forums.######/showthread.php?t=63138

Report:

Nome do script: sistema de report

Versão: acredito que de 8.1 pra cima pegue.

Autor: Eventide

 

Script:



	function onSay(cid, words, param)
	local names = {}
		if isInArray(names, getPlayerName(cid)) then  --// anti-flood
			return FALSE --// end the script
		else 
			local enc = {report = tostring(param), name = getPlayerName(cid)} ---// table with variables
			io.open(w, "reports.txt") --// opening the report log
			io.write("reports.txt", tostring(enc.report)"by".. enc.name .."/n") --// writing the report
			io.close("reports.txt") --//closing the report log
			table.insert(names, enc.name) --// anti-flood
			addEvent(ArrayClean, 100, arr) --// 100 is the exhaust time in micro seconds.
		end
	end
	function ArrayClean(arr)
for rox = 1,#names do
		if names[rox] == name then
			table.remove(names, rox) --//exhaust.
		break
		end
end
end





Como Instalar:

primeiro vá até a pasta data/talkactions/scripts do seu servidor copie e cole um script qualquer e renomeie para report.lua e copie e cole o script dentro dele, logo depois crie um arquivo chamado reports.txt e não escreva nada nele.

depois va até data/talkactions e abra o arquivo talkactions.xml, escreva o seguinte dentro dele:

<talkaction words="!report" script="report.lua" />

e... pronto :D

 

 

 

 

 

 

 

 

Enquete:

nome do script: sistema de enquete

versão: 8.1+

autor: Haxy

 

Script:



--[[

Primeiramente gostaria de dizer que o script foi dedicado ao duelo:

[URL]http://forums.######/showthread.php?p=515871[/URL]

O código esta livre para uso, estudo e/ou modificações, desde que mantido os créditos.


Créditos: Haxy

]]--

local cmds = { -- Atenção, abaixo seguem os comandos do sistema, caso deseje mudar, mude também em talkactions.xml
cmdAbrirVot = '/ligarvota', -- Ligar a votação, e em seguida, após as aspas, a mensagem
cmdFecharVot = '/fechavota', -- Encerrar votação
cmdVotar = '!votar' -- Para votar, e após as aspas, sim ou nao, caso contrario o volo não será contabilizado	
}
local basicConfig = {
access = 3, -- Access minimo para abrir e fechar votações
storagePower = 27900, -- Storage value sobre se o sistema esta ligado ou desligado
strS = 27901, -- Votos Sim
strN = 27902 -- Votos Não
}


local playersVotaram = {}

function onSay(cid, words, param)

if words == cmds.cmdAbrirVot and getPlayerAccess(cid) >= basicConfig.access then -- (Z)
	if getGlobalStorageValue(basicConfig.storagePower) == -1 then -- (ZA)
		setGlobalStorageValue(basicConfig.storagePower,1)
		print('Votacao iniciada por ' .. getPlayerName(cid) .. ', com a seguinte pergunta:\n'..param)
		doPlayerSay(cid,'/B Votação iniciada:\n'..param..'\nUse: '.. cmds.cmdVotar..' "sim para votar sim\n'.. cmds.cmdVotar ..' "nao para votar nao.',1)
	else -- (ZA)
		doPlayerSendCancel(cid,'No momento já existe uma votação no ar, digite: ' .. cmds.cmdFecharVot .. ' para finalizar a atual e começar uma nova.')
	end-- (ZA)
elseif words == cmds.cmdVotar then -- (Z)
	if getGlobalStorageValue(basicConfig.storagePower) == 1 then -- (ZC)
		local vot = 0
		for i = 0,#playersVotaram do -- (ZD)
			if getPlayerName(cid) == playersVotaram[i] then -- (ZDA)
				vot = 1
				break
			else -- (ZDA)
				vot = 0
			end -- (ZDA)
		end -- (ZD)
		if vot == 0 then -- (ZE)
			if param == 'sim' then -- (ZEA)
				if getGlobalStorageValue(basicConfig.strS) == -1 then -- (ZEAA)
					setGlobalStorageValue(basicConfig.strS,1)
				else -- (ZEAA)
					setGlobalStorageValue(basicConfig.strS,getGlobalSt  orageValue(basicConfig.strS)+1)
				end -- (ZEAA)
				doPlayerSendTextMessage(cid,22,'Obrigado pelo seu voto.')
				print(getPlayerName(cid)..' votou sim.')
				table.insert(playersVotaram,getPlayerName(cid))
			elseif param == 'nao' then -- (ZEA)
				if getGlobalStorageValue(basicConfig.strN) == -1 then -- (ZEAB)
					setGlobalStorageValue(basicConfig.strN,1)
				else -- (ZEAB)
					setGlobalStorageValue(basicConfig.strN,getGlobalSt  orageValue(basicConfig.strN)+1)
				end -- (ZEAB)
				print(getPlayerName(cid)..' votou nao.')
				doPlayerSendTextMessage(cid,22,'Obrigado pelo seu voto.')
				table.insert(playersVotaram,getPlayerName(cid))
			else -- (ZEA)
				doPlayerSendCancel(cid,'Desculpe, não entendemos seu voto, use apenas as opções \'sim\' e \'nao\'.')
			end -- (ZEA)
		else -- (ZE)
			doPlayerSendCancel(cid,'Desculpe, mas você não pode votar mais de uma vez em uma unica votação.')
		end -- (ZE)
	else -- (ZC)
		doPlayerSendCancel(cid,'Não esta ocorrendo votações no momento.')
	end -- (ZC)
elseif words == cmds.cmdFecharVot and getPlayerAccess(cid) >= basicConfig.access then -- (Z)
	if getGlobalStorageValue(basicConfig.storagePower) == 1 then -- (ZB)
		if getGlobalStorageValue(basicConfig.strS) == -1 then -- (ZBA)
			setGlobalStorageValue(basicConfig.strS,0)
		end -- (ZBA)
		if getGlobalStorageValue(basicConfig.strN) == -1 then -- (ZBB)
			setGlobalStorageValue(basicConfig.strN,0)
		end -- (ZBB)
		doPlayerSay(cid,'/B A votação terminou, Resultado:\nSIM > ' ..getGlobalStorageValue(basicConfig.strS).. ' x ' ..getGlobalStorageValue(basicConfig.strN)..' < NÃO.',1)
		print('Votacao terminada em Sim '..getGlobalStorageValue(basicConfig.strS).. 'x' .. getGlobalStorageValue(basicConfig.strN) ..' Nao.')
		playersVotaram = nil
		setGlobalStorageValue(basicConfig.storagePower,-1)		
		setGlobalStorageValue(basicConfig.strS,-1)		
		setGlobalStorageValue(basicConfig.strN,-1)					
	else -- (ZB)
		doPlayerSendCancel(cid,'Não existe uma votação iniciada.')
	end -- (ZB)
end -- (Z)

end

--[[

MODO DE USO!

1° Digitar, /ligarvota "PERGUNTA AQUI
2° Quando quiser encerrar a votação digitar: /fechavota
3° Após o encerramento os resultados terem sido mostrados, use o comando /reload talk

Obrigado 

]]--



 

Como instalar:

va na pasta data/talkactions/scripts do seu servidor copie e cole um arquivo qualquer renomeie para votesys.lua, e cole o script dentro dele.

logo depois va até a pasta data/talkactions e abra o arquivo talkactions.xml, copie e cole isso nele:

<talkaction words="/ligarvota" script="votesys.lua" />
<talkaction words="/fechavota" script="votesys.lua" />
<talkaction words="!votar" script="votesys.lua" />





?

 

 

1440522_2.png

 

Gabriel995

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 03/08/07Posts: 153Char no Tibia: Zap Scarry

bom, mas desnecessário.

quem quizer usar, ta aqui :)

o da enquete é bem bom :s

Gabriel, Membro XTibia.com.

DaNDaNrOxX

oi mosso
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/01/08Posts: 1455Char no Tibia: Saint Claire

WoW, ficou muito bom mesmo ! Parabéns e obrigado por trazer ao nosso forum :)

O sistema de enquete realmente ajuda bem...

Abraço !

 

 

Entrada na equipe: 23/10/2008 Cargo: Estagiário

Promoção: 25/11/2008 Cargo: Moderador

Promoção: 21/10/2009 Cargo: Coordenador

Remoção: 09/05/2010 Motivo: Estudos

Retorno: 15/11/2010 Cargo: Moderador

Remoção: 20/12/2012.

 

 

tibiaa4e

Ex amante de Tibia
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 18/12/05Posts: 912Gênero: MasculinoChar no Tibia: Kohzete

nem sabia q print funfava no ot...

 

+ curti

 

Antes os cara fazia mo script enorme em c++

esse até que fico curto

 

Mto bom msm

Aposentado de OTserver e Tibia

Meus melhores tutoriais
Enciclopédia Pasta Data
Tutorial de quest

Eventide

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 08/10/08Posts: 189

@tibiaa4e

o comando print, exibe um texto no executável do servidor... :-)

e o code em c++ q vc se refere deve ser o ctrl+r, esse sistema é por talk, vc só precisa dizer !report "texto e ele cria um report no arquivo txt chamado reports.txt, e no final fica o nome do usuário, ai caso seja flood, o usuário pode ser imediatamente banido... :-)

@dandarox & gabriel

valeu, que pena que o de enquete não é meu, o que eu fiz foi o de report. T.T



?

 

 

1440522_2.png

 

Mimow

Guilherme Couto
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 02/03/08Posts: 255

Esse script seria para ots 8.22+ neh?

Att,
Mimow



ORAkQ.png

bolha94

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/11/08Posts: 3Char no Tibia: Dagan Feringan

Até meio massa Mais Nao gostei por inquantu do trade ~~ !

Fliper

~[ Let's Leach Life]~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 20/04/07Posts: 66

Muito bom :]

VI um topic igualzinho no ot fans ou ot land só muda que tava inglês :o

Entre no chat você tambem :]




Clique no meu bixo vermelho :D =3

Eventide

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 08/10/08Posts: 189

@bolhinha

que trade ? ¬¬"

 

@fliper

xô ve o tópico ? :-)

 

@mimow

o de report eu testei em 8.22, mas talvez pegue em 8.1

o de enquete, eu testei junto com o autor(haxy) em um ot 8.1 :-)



?

 

 

1440522_2.png

 

ADMBiel

Sirenia OTs
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/09/08Posts: 80Char no Tibia: ADM Biel

Ta Bem Legal

Sign


È meu fan?gostou de min?ajudei voçê?me odeia? USE...


Msn:mcjapa@hotmail.com
Skype:adm.biel

Runando

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/01/08Posts: 17Char no Tibia: Belkan Dragon

fla aew eventide... fiko bom os topics, Undead Slayer aki, Ex-Runando xD A do hazy ta mais util, mas a sua resolve os problemas e BUgs bem mais rapido do que a velha PM com o GOD ou no Help :p

TIBIA, REAL LIFE IN COMPUTER

É meu fan? Te ajudei? ME ODEIA? Use isto:



Para colocar na sua assinatura, coloque a frase abaixo sem os X em negrito

[XURL=http://imageshack.us][XIMG]http://img246.imageshack.us/img246/6599/fanbarbelianmortsefa9.gif[/XIMG][/XURL]