* Autor: Obex Sys
* Tested on: TFS 0.3.6
* Requerimento:
o Lua socket > Lua modules > download aki
o Conta no Yahoo mail
Depois de postar tweets agora você pode enviar email para seus players, Não pense que é igual outros sevrer que você fala !email e ve o email pelo jogo, dessa vez você envia um email para os players do seu server! ai eles vão no hotmail, gmail o que for e leem o email
Primeiro vou falar como fiz. Eu usei o server SMTP do yaddo. É de graça qualquer um que tiver conta no yahoo pode usar. Se quiser mudar para outro servidor SMTP pode mudar, só nao mude pro SMTP do gmail por que ele usa SSL (Secure Socket Layer) e o script nao suporta isso.
Primeiro crie uma conta no yahoo, depois instale o lua modules.
Agora adcione isso no talkactions.xml
<talkaction log="yes" words="/email" access="5" event="script" value="email.lua"/>
E em email.lua isso:
Lua:
--[[Config]] local config={ --Email/pass user = 'seu_email@yahoo.com.br', pass = 'suasenha123', ---SMTP config smtpserver="smtp.mail.yahoo.com.br", -- dont change it smtpport= 587, -- dont change it } --Script By Obex SyS local mime = require("mime") local smtp = require("socket.smtp") dofile('config.lua') config.username = serverName function send_mail(cid,mesgt,config,to) local _, err = smtp.send { from = '<'..config.user..'>', rcpt = '<'..to..'>', source = mesgt, user = config.user, password = config.pass, server = config.smtpserver, port = config.smtpport, domain = 'yahoo.com.br', } if not err then addEvent(doPlayerSendTextMessage,100,cid,25,'Email sent') else addEvent(doPlayerSendTextMessage,100,cid,25,'Canno t send email: '..tostring(err)) end end function getPlayerEmailByName(e) -- Function by ObeX SyS local cid = getPlayerByName(e) if not cid or not isPlayer(cid) then return false end local f = db.getResult('select `email` from accounts where id = '..getPlayerAccountId(cid)) if f:getID() ~= -1 then return f:getDataString('email'),f:free() else return false end end function onSay(cid, words, param, channel)--Script By ObeX SyS if not smtp then doPlayerSendTextMessage(cid,25,'Install lua socket.') return true end local email,sub,msg = param:match('(.-@?.?)%s*,%s*(.-)%s*,%s*(.+)') if not email:find('@') then email = getPlayerEmailByName(email) end if sub and msg then if not email or email:len() < 3 then doPlayerSendTextMessage(cid,25,'Invalid email.') return true end doPlayerSendTextMessage(cid,25,('Sending email to %s\nSubject:%s\nBody:%s'):format(email,sub,msg)) local mesgt = smtp.message({ headers = { from = config.username.." "..'<'..config.user..'>', to = '<'..email..'>', subject = sub, }, body = mime.eol(0, ([[%s %s Sent by: %s ----------------------------------- Script by ObeX SyS -----------------------------------]]):format(msg or '',serverName or '-',getCreatureName(cid))), }) addEvent(send_mail,200,cid,mesgt,config,email) else doPlayerSendTextMessage(cid,25,'Use like this: /email name@hotmail.com, Subject, Message') end return true end
Não esqueça de configurar!
Agora basta usar o comando. Você pode usar assim:
* /email ObeX SyS,Assunto,Mensagem
* /email gatinlp@hotmail.com,Assunto,Mensagem
No começo eu falei para baixar o o Lua socket,Lua modules então vou colocar o download.
Esse é um sistema simples que eu fiz apenas para facilitar a instalação de LuaSocket e outras libs em seu server, é como uma OTAL so que comprimida e restrita à apenas exteções em lua, podendo ser de GD ou se quiser inutilmente lua interface, se quiser pode criar modulos eu tenho um exemplo.
O sistema é uma pasta com um XML que você define quais LIBS quer em seu server, você poe la exemplo, socket, depois baixa o lua socket e joga na pasta modules/scripts.
Vamos lá!
O sistema foi testado e funciona em QUALQUER servidor, o que pode afetar o funcionamento é sua instalação.
Instalação
1º - Baixe o arquivo anexado ao topico. 2º - Coloque a pasta modules na pasta data do seu server. 3º - Se você usa TFS 0.3.6 ponha o arquivo modules.lua em data/lib ----------- Se você usa TFS 0.3.5 ou menores coloque o arquivo modules.lua em data/lib e em data.lua coloque isso: dofile('data/lib/modules.lua') ----------- Se você usa Open Tibia coloque o modules.lua na pasta data e abra o global.lua e ponha isso: dofile('data/modules.lua') ----------- 4º - Reload e pronto!
Apos instalar vamos a um exempl ode como cirar um modulo.
Lua:
--[[ Como cirar um modulo ]] --Isso aqui é pra economizar memoria, vc define tudo q vai usar local string = require("string") local base = _G -- aqui vc poe o nome do modulo (o noem tem que ser igual do arquivo sem o .lua) module('example') --Versao _VERSION = "Example lib 1.0"
-- As funçoes aki
function myprint(...) --example.myprint local arg = {...} for i,b in base.pairs(arg) do io.write(tostring(b)) if i ~= #arg then io.write(', ') end end end function array(...) -- example.array return {...} end function replace(s,m,d) --example.replace return s:gsub(m,d) end
Ai é so jogar na pasta modules/scripts e adcionar isso no modules.xml
Código:
<module name="example"/>
Example é o nome do modulo
Site para download de libs Lua forge
Libs recomendadas:
* GD
* lua file system
Como instalar modulos
Primeiro baixe o modulo
Vou usar como exemplo LUAGD http://luaforge.net/frs/download.php...33r2-win32.zip (1.6mb)
Código:
<module name="gd"/>
Quando terminar abra o .zip e abra a pasta, dentro vai ter VARIOS arquivos. Copie todas as DLLs e cole na pasta data/modules/scripts e depois adcione essa TAG no modules.xml
Arquivos Anexados
Tipo de Arquivo: zip modules.zip (1,02 MB, 112 visitas)
Espero que tenho o ajuda-do
Att ObeX SyS