Ir para conteúdo

Posts Recomendados

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

Link para o comentário
Compartilhar em outros sites

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 por caotic
Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
  • 2 months later...
×
×
  • Criar Novo...