/report
Autor: Guitar Freak
Co-Autor: Colanus
Ideia: Shawak
Utilização: Muita gente tem problemas com bugs no mapa e até scripts, quests que não funcionam direito e outras coisas que passam despercebidos. E o pior de tudo é que o bug não reportado fica ali e prejudica ou incomoda os outros players. Com esse script, você pode verificar bugs e até mesmo o que os players estão achando do servidor, dá para fazer diferentes variações desse script.
Explicação: Esse é uma talkaction que reportará bugs, já enviando o local, nome do player que utilizou o reporte e horário em que foi reportado. Os reportes ficarão em data > logs em um arquivo chamado Reports.txt
Servidor Testado: 0.4
Não tenho certeza, mas parece que funciona a partir do 0.3+, incluindo 0.3.5
Autor: Guitar Freak
Co-Autor: Colanus
Ideia: Shawak
Utilização:
Explicação:
Não tenho certeza, mas parece que funciona a partir do 0.3+, incluindo 0.3.5
1º) Entre na pasta data > lib e abra o arquivo function.lua e coloque o código a seguir no final.
Código:
function setExhaust(cid, storage)
setPlayerStorageValue(cid, storage, os.time())
end
function isExhausted(cid, storage, exhaust)
local exhaustTime = getPlayerStorageValue(cid, storage)
if exhaustTime == -1 then
return FALSE
end
local isExhausted = os.time() - exhaustTime < exhaust
return isExhausted and TRUE or FALSE
Código PHP:
<talkaction log="no" words="/report" event="script" value="textreports.lua"/>
3º) Ainda dentro da pasta talkactions, acesse a pasta scripts e copie um arquivo lua qualquer e renomeie para textreports colocando o código abaixo.
Código:
-- Créditos --
-- Referencias: Shawak & Colandus.
-- Modificações: Guitar Freak.
local level = 8 -- Level mínimo para reportar.
local minimum = 3 -- Número mínimo de caracteres por reporte.
local maximum = 85 -- Número máximo de caracteres por reporte.
local useExhaust = true -- True se você quiser usar exhaustion.
local storageValue = 8000 -- Número para registrar a exaustão. Pode-se usar outro qualquer valor.
local exhaustTime = 15 -- Tempo entre cada reporte (15 = 15 segundos).
function onSay(cid, words, param, channel)
local getVoc = getPlayerVocationName(cid)
local position = getCreaturePosition(cid)
if getPlayerLevel(cid) < level then
doPlayerSendTextMessage(cid,20,"Report Manager:")
doPlayerSendTextMessage(cid,18,"You need to be at least level "..level.." to send a report.")
elseif (useExhaust and isExhausted(cid, storageValue, exhaustTime) == TRUE) then
doPlayerSendTextMessage(cid,20,"Report Manager:")
doPlayerSendTextMessage(cid,18,"Sorry, you need to wait "..exhaustTime.." seconds before sending another report.")
elseif param:len() < minimum then
doPlayerSendTextMessage(cid,20,"Report Manager:")
doPlayerSendTextMessage(cid,18,"Sorry, you need to enter atleast " .. minimum .. " characters to send in a report.")
elseif param:len() > maximum then
doPlayerSendTextMessage(cid,20,"Report Manager:")
doPlayerSendTextMessage(cid,18,"Sorry, you can only write max. " .. maximum .. " characters per report.")
else
Log = io.open(getDataDir().."logs/Reports.txt", "a+")
Log:write("Sent: "..os.date("%A %I:%M:%S %p.").."\n")
Log:write("From position: X = "..position.x.." | Y = "..position.y.." | Z = "..position.z.."\n")
Log:write(""..getPlayerName(cid).." ["..getPlayerLevel(cid).."] ("..getVoc.."): "..param.."\n\n")
Log:close()
doPlayerSendTextMessage(cid,20,"Report Manager:")
doPlayerSendTextMessage(cid,27,"You have successfully sent your report. Thanks for your support.")
setExhaust(cid, storageValue)
end
return TRUE
end
Obs.: Se você quiser adicionar as aspas do /report ", coloque o code
Código:
filter="quotation"
A mensagem ficará nesse estilo
Sent: Saturday 03:27:10 PM.
From position: X = 158 | Y = 51 | Z = 7
Player1 [30] (Knight): Hi there is a map bug in temple, please fix..
From position: X = 158 | Y = 51 | Z = 7
Player1 [30] (Knight): Hi there is a map bug in temple, please fix..
Agora, com um pequeno globalevent como esse, com o nome report.lua dentro de scripts:
E adicionando isso no xml:
E os seus players serão alertados sobre o novo script.
Código:
function onThink(interval, lastExecution)
MENSAGEM = {
"Agora contamos com o sistema de reportar, onde o nome do que reporta, local e horário são automaticamente informados. Apenas fale /report e digite sua mensagem como por ex.: /report um erro no mapa aqui. "
}
doBroadcastMessage(MENSAGEM, 22)
return TRUE
end
Código PHP:
<globalevent name="report" interval="950000" script="report.lua"/>
Nenhum comentário:
Postar um comentário