CA
sistema

Report Sytem Beta

Por caotic, 08 de nov. de 2012 em Mods, funções e outros

report sytem
alerta sytem
denuncias sytem
log de reports
otserv
tibia
script
5.0 (1)
13
3.1k
caoticC
08 de novembro de 2012 às 19:05

Report Sytem

 

 

Ola galera do xtibiana hoje venho apresentar um sisteminha beta que fiz.

O sistema e o seguinte:

Um player qualquer reporta dizendo /report (e o nome do bug ou alguma irregularidade no otserv) se o adminstrador estiver online ele já recebe a mensagem e fica salva em um documento de log se o adminstrador não estiver online ele salva no documento de log e quando ele entrar recebe uma mensagem dizendo que existe uma nova denuncia.

O log de reports e um documento de texto onde fica salvado todas as denuncias as denuncias são salvas assim:

 

 

(Demonio) Dark Test Thursday as 18:31 reportou dizendo (Ola pessoal do xtibia testing o report sytem)

(Dragon) [PBO]Hero Naruto Thursday as 18:33 reportou dizendo (Hello Xtibianos testando o atendimento rapido quando o adminstrador esta online)

 

Todas bem organizadas e com quebra de linhas a cada denuncia.

 

Vamos ao scripts:

 

Primeiro crie um arquivo de texto(.txt) chamado report na sua pasta de seu ot onde fica o seu executavel.

Lembre-se que deve ser um arquivo txt e que deve estar na pasta raiz do seu ot.

 

Depois de criar o arquivo vá em talkactions e crie um arquivo LUA chamado de report.

E coloque o seguinte script:

 

function onSay(cid, words, param)
if exhaustion.check(cid, 2123) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Precisa esperar para reportar novamente")
return false
end
if #param <= 10 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu report precisa ter pelo menos 10 caracters")
return false
end
local file = io.open("./report.txt", "a")
file:write("\n "..getPlayerName(cid).." "..os.date("%A").." as "..tostring(os.date("%X")):sub(1, 5).." reportou dizendo ("..param..")")
file:close()
setGlobalStorageValue(28212, getGlobalStorageValue(28212)+1)
exhaustion.set(cid, 2123, 36000)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu report foi enviada com sucesso logo sera atendindo obrigado pela colaboração")
for _, id in ipairs(getPlayersOnline()) do
if getPlayerGroupId(cid) > 5 then
doShowTextDialog(cid, 1952, ""..getPlayerName(cid).." acabou de reportar dizendo ("..param..") este report esta salvo no log")
exhaustion.set(cid, 2123, 36000)
return true
end
return true
end
end

 

Agora vá em talkactions.xml e coloque a seguinte tag:

 

<talkaction words="/report" event="script" value="report.lua"/>

 

Agora vá em creaturescripts e crie um arquivo LUA chamado de alerta.

E coloque isto dentro:

 

function onLogin(cid)
if getPlayerGroupId(cid) > 5 then
if getGlobalStorageValue(28212) == 0 then
doShowTextDialog(cid, 1952, "1 player reportaram para ver o report abra o log de reports")
setGlobalStorageValue(28212, -1)
return true
end
if getGlobalStorageValue(28212) ~= -1 then
doShowTextDialog(cid, 1952, ""..getGlobalStorageValue(28212).." player reportaram para ver o report abra o log de reports")
setGlobalStorageValue(28212, -1)
return true
end
return true
end
return true
end

 

Coloque a tag em creaturescripts.xml

<event type="login" name="report" event="script" value="alerta.lua"/>

 

Depois registre o evento em login.lua

Primeiro va em creaturescripts/scripts e abra o arquivo chamado login.lua antes do ultimo "return" coloque isto:

 

registerCreatureEvent(cid, "report")

 

 

E prontinho estamos o novo report sytem.

A versão e beta mais esta funcional e bem intuitiva ótima para ser usada.

 

 

83177ff9c686ad92097fb8ce17a167e4.gif

LummosL
08 de novembro de 2012 às 19:09

Funciona em 9.6+?

MrCatraM
08 de novembro de 2012 às 19:12

Nossa muito legal esse sistema parabéns caotic.

 

Obrigado , por compartilhar com nós.

caoticC
08 de novembro de 2012 às 19:13

Funciona em 9.6+?

 

Testei em 9.1 e bem provável que funcione

LuckOakeL
08 de novembro de 2012 às 19:14

Interessante o sistema. A ideia já existe, mas essa versão tá mais moderna, com mais recursos. REP+.

 

OBS: Dá pra reduzir um pouco os scripts usando elseif.

VodkartzinV
08 de novembro de 2012 às 19:32

eu estava pensando em fazer pela DB mesmo, porque aí o god poderia apagar ou reler os report...

caoticC
08 de novembro de 2012 às 19:34

eu estava pensando em fazer pela DB mesmo, porque aí o god poderia apagar ou reler os report...

 

Eu tbm pensei assim vodkart :X

Mais você disse que ia pesar.

Ai tive a ideia de ao ler excluir a denuncia.

Ai cada denuncia teria um numero numerado por ordem.

Editado Novembro 9 por caotic

StigalS
09 de novembro de 2012 às 12:46

Parabens Caotic gay.

Otimo Sistema e bem pratico ;)

 

Continue assim meu jovem gafanhoto.

Atenciosamente, Stigal.

2 semanas depois...
JasonLucasJ
16 de novembro de 2012 às 18:02

Muito bom esse script só coloca pra marcar a posição do player também ajuda na hora de resolver o bug ;)

1 mês depois...
AlexandreKGA
05 de dezembro de 2012 às 10:07

Muito bom este script adicionarei em meu server.

 

Parabéns.

2 meses depois...
jhowzikahJ
15 de fevereiro de 2013 às 17:47

COMO ABRE O LOG DE REPORT? URGENTE!

caoticC
15 de fevereiro de 2013 às 20:16
COMO ABRE O LOG DE REPORT? URGENTE!

 

E um arquivo de texto não tem segredo.

E so abrir.

 

Tu não esqueceu de criar o documento txt?

Editado Fevereiro 15 por caotic

DR009D
19 de fevereiro de 2013 às 12:17

Simplesmente perfeito, testei em 9.70 e funciono perfeitamente !

 

Obrigado por compartilhar