drakylucas 160 Postado Março 30, 2013 Share Postado Março 30, 2013 (editado) Olá amiguinhos! Peguei o sistema do Ghandi (de outro fórum, polones) e dei uma limpada nele, adaptando-o a meu gosto e agora vou posta-lo. Créditos: Ghandi e Draky Lucas Como funciona? Apenas digite /msg NicknameDoPlayer, sua mensagem aqui exemplo: /msg Draky Lucas, iae carinha que mora logo ali, blz? saudades brother! ^^ dae o jogador Draky Lucas receberia isso: 14:34 [30.03.2013 14:30:40] Draky: iae carinha que mora logo ali,blz? saudades brother! ^^ (Draky é o nick do char que enviou a mensagem) Instalação: Em Mods, crie um arquivo chamado Msgoffline.xml e nele coloque isso: <?xml version="1.0" encoding="iso-8859-1"?> <mod name="Mensagens offline" version="1.0" author="Draky Lucas / Ghandi" contact="XTibia" enabled="yes"> <config name="configuracao_offlinemsg"><![CDATA[ pasta = "data/logs/offline_msg/" -- local onde salvará as mensagens delay = 750 -- tempo em milisegundos entre mensagens -- nao mecha formatoString = '[%s] %s: %s' -- data, autor, mensagem formatoData = '%d.%m.%Y %H:%M:%S' -- dia mes ano hora minuto segundo function sendLine(cid, msgType, filename) -- Função by Ghandi if(not isPlayer(cid)) then -- nao dar erro caso o player deslogue return false end local file = io.open(filename, 'r') if(not file) then return false end local first, str = true, '' for line in file:lines() do if(first) then doPlayerSendTextMessage(cid, msgType, line) first = false else str = str .. line .. '\n' end end file:close() if(str ~= '') then file = io.open(filename, 'w') file:write(str) file:close() addEvent(sendLine, delay, cid, msgType, filename) else os.remove(filename) end end -- function sendLine ]]></config> <talkaction words="/msg" event="buffer"><![CDATA[ domodlib("configuracao_offlinemsg") local params, player = string.explode(param, ","), 0 if(#params <= 1) then doPlayerSendTextMessage(cid, 19, "sem parametros\n digite /msg Nickname, Sua mensagem\n") doPlayerSendTextMessage(cid, 19, "Exemplo:\n/msg Draky Lucas, iae fera, blz?") return true end player = db.getResult('SELECT `name`, `online` FROM `players` WHERE `name` = "' .. params[1] .. '";') if(player:getID() == -1) then return doPlayerSendTextMessage(cid, 19, "Esse jogador não existe!") end table.remove(params, 1) -- remover o nick do jogador, para salvar só a mensagem if(player:getDataInt('online') == 1) then local target = getPlayerByNameWildcard(player:getDataString('name')) if(isPlayer(target)) then -- evitar bugs doPlayerSendTextMessage(target, 27, formatoString:format(os.date(formatoData), getCreatureName(cid), "Mensagem enviada!")) doPlayerSendTextMessage(target, 27, formatoString:format(os.date(formatoData), getCreatureName(cid), table.concat(params, ","))) else doPlayerSendTextMessage(cid, 19, "Ocorreu um erro:\nJogador não encontrado.") end return true end local file = io.open(pasta .. player:getDataString('name') .. '.txt', 'a+') if(not file) then doPlayerSendTextMessage(cid, 19, "Sua mensagem não pode ser enviada a todos os destinarios. Desculpe-nos!") return true end file:write(formatoString:format(os.date(formatoData),getCreatureName(cid), table.concat(params, ",")) .. '\n') file:close() doPlayerSendTextMessage(cid, 27, "Sua mensgem foi enviada ao jogador " ..player:getDataString('name').. "!") player:free() return true ]]></talkaction> <creatureevent name="offlinemsglogin" type="login" event="buffer"><![CDATA[ domodlib("configuracao_offlinemsg") addEvent(sendLine, delay, cid, 27, pasta .. getCreatureName(cid) .. ".txt") return true ]]></creatureevent> </mod> Depois disso, na pasta Data/Logs crie uma pasta chamada offline_msg Reinicie o servidor e teste! ^^ Gostou? REP+ e COMENTE! Editado Março 30, 2013 por DrakyLucas Link para o comentário https://xtibia.com/forum/topic/211010-mod-sistema-mensagens-offline/ Compartilhar em outros sites More sharing options...
Ruzerk 0 Postado Março 30, 2013 Share Postado Março 30, 2013 ou seja, quando o jogador logar ele vai receber a msg ? Link para o comentário https://xtibia.com/forum/topic/211010-mod-sistema-mensagens-offline/#findComment-1495746 Compartilhar em outros sites More sharing options...
drakylucas 160 Postado Março 30, 2013 Autor Share Postado Março 30, 2013 sim Link para o comentário https://xtibia.com/forum/topic/211010-mod-sistema-mensagens-offline/#findComment-1495752 Compartilhar em outros sites More sharing options...
shutup 10 Postado Abril 3, 2013 Share Postado Abril 3, 2013 Perfeito. :-)' soh nao gosto muito de talkactions. Muito ruim. Link para o comentário https://xtibia.com/forum/topic/211010-mod-sistema-mensagens-offline/#findComment-1497603 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Abril 14, 2013 Share Postado Abril 14, 2013 usei um sistema de msg offline no meu sistema do npc auction tbm o seu fico show xD rep+ Link para o comentário https://xtibia.com/forum/topic/211010-mod-sistema-mensagens-offline/#findComment-1503534 Compartilhar em outros sites More sharing options...
angelopre98 5 Postado Maio 3, 2013 Share Postado Maio 3, 2013 Acredito que se existisse um maximo de mensagens que cada player pudesse receber (pra n haver spam) ficaria melhor, consegue colocar isso? pro player receber 5 e ter que deletar elas antes de receber mais (se for possivel) Link para o comentário https://xtibia.com/forum/topic/211010-mod-sistema-mensagens-offline/#findComment-1515216 Compartilhar em outros sites More sharing options...
Posts Recomendados