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.