Hmm, muito bom!
Uma dica seria não usar IO para armazenar as notícias, pois cada vez que você le/salva você consome recursos
de IO do HD, nenhuma VPS ou dedicado comum possui hds bons. Minha sugestão seria ou criar uma tabela
de banco ou usar a camada de cache do storage para isso.
A camada de cache de storage é linda pra isso, ela faz tudo em memória (1000x mais rápido que disco) e depois
salva tudo a cada server save.




info
Grupo: Herói
Registrado: 08/08/07
Posts: 520
Reputação: +235
Gênero: Masculino
Char no Tibia: Sir Morths
Versão do Script: V0.1 By Comedinha
Versão testada: 9.4+ (pode funcionar em versões anteriores).
Descrição: Quem não se lembra do velho Notice System feito pelo esk? Aquele que toda a noticia nova você tinha que abrir o txt e escrever nele as novidades? Agora não precisa mais disso.
Nota: O script no momento está mais parecido com um ticker system do que um notice system.
Novas Funções:
- Adicionar noticias em tempo real para todo o servidor com a data.
- Limpar a janela de noticias em tempo real para todo o servidor.
TAG:
Script:
local config = { add = {"add", "adicionar", "new"}, clean = {"clean", "limpar"} } function onSay(cid, words, param, channel) local t = string.explode(param, ",") if(table.isStrIn(param, config.add)) then if getPlayerGroupId (cid) >= 5 then file = io.open('data/txt/notice.txt','a+') if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end notice = file:write("\n"..getPlayerName(cid).." at " .. os.date("%d %B %Y - %X ", os.time()) .."\n"..t[2].."\n") file:close() return true end elseif(table.isStrIn(param, config.clean)) then if getPlayerGroupId (cid) >= 5 then file = io.open('data/txt/notice.txt','w') if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end notice = file:write("Server News\n") file:close() return true end return false end file = io.open('data/txt/notice.txt','r') notice = file:read(-1) doShowTextDialog(cid, 7528, notice) file:close() return true endAviso:
Na pasta data crie uma pasta chamada txt e dentro dela um arquivo chamado notice.txt.
Após a instalação do script dentro do servidor digite /notice clean para não ter problemas futuros.
Como usar:
Para ver as noticias digite /notice
Para adiconar noticias digite /notice add, (texto)
Para limpar a janela de noticias digite /notice clean
Créditos:
Esk
Comedinha (Bruno Carvalho)