Jump to content

[QUEST]Noticias del servidor en tiempo real.


Rafa23Alzira

Mensajes recomendados

Hola chicos, les traigo una pequeña quest con la que podrán mostrarles a sus jugadores las noticias del servidor en tiempo real, sin necesidad de reload o reboot.

quest noticias begin		
state start begin	
		when letter begin
			send_letter("Últimas Noticias")	
		end						
                when button or info begin
			local fecha = write_or_read("/home/game/share/locale/germany/quest/noticias/", "fecha.txt", "leer", "linea")
			say_title("Noticias - "..fecha.."")
		        say(write_or_read("/home/game/share/locale/germany/quest/noticias/", "noticias.txt", "leer", "todo"))
		end	
	end
end	

Para usarla debéis crear una carpeta llamada noticias en la ruta que pongáis, dentro de ella creáis dos archivos, uno llamado fecha.txt y otro noticias.txt (supongo que ahí ya os guiáis bastante)

 

Necesitareis está función: 

Debes iniciar sesión para ver el contenido del enlace en esta publicación.

 

Se que no es mucho, pero a alguien le servirá.

Enlace para comentar
Compartir en otros sitios

Si es algo de información no sería mejor que apareciera en el chat general o tipo pregunta OX cada cierto tiempo o a unas horas específicas???? lo digo por experiencia en mi server tengo una quest de noticias echa por mi pero nadie lee esos pergaminos en la actualidad... 

Si es mucha información ocuparía demasiado en el chat y se haría pesado.

 

Yo por ejemplo pongo todo lo que se ha puesto en los mantenimientos y son 7 u 8 líneas.

Enlace para comentar
Compartir en otros sitios

  • 1 year later...

buenas tardes, puse esta funcion en questlib

 

 

function write_or_read(path, file, act, text, line)
local type_
if os.execute('cd '..path) ~= 0 then os.execute('mkdir '..path)
elseif os.execute('[ -f '..path.."/"..file..' ] && echo "s" || echo "n"') == 'n' then 
os.execute('cd '..path..' && touch '..file)
end
if act == 'ler' or act == 'read' or act == 'l' or act == 'r' then type_ = 'r'
elseif act == 'sobrescrever' or act == 'rewrite' or act == 's' or act == 're' then type_ = 'w'
elseif act == 'escrever' or act == 'write' or act == 'e' or act == 'a+' then type_ = 'a+' end
local f = io.open(path..'/'..file, type_)
if type_ == 'r' then
if text == 'all' or text == 'tudo' then return f:read('*all')
elseif text == 'line' or text == 'linha' or text == 'l' then return f:read('*l')
elseif text == 'sline' or text == 'linhas' or text == 'ls' then
local ltable = {}
for i in f:lines() do table.insert(ltable, i) end
f:close()
return ltable[line]
end
elseif type_ == 'a+' or type_ == 'w' then
if string.find(text, '__enter__') ~= 0 then
f:write(string.gsub(text, '__enter__', '\n', string.find(text,'__enter__'))..'\n')
else 
f:write(text..'\n')
end
f:close()
end
end
 
 
y la quest y al darle clic al pergamino no aparece nada no abre ninguna informacion
y si hice la carpeta noticias los txt fecha y noticias dentro de la carpeta 
aqui una foto
 
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Enlace para comentar
Compartir en otros sitios

 

buenas tardes, puse esta funcion en questlib

 

 

function write_or_read(path, file, act, text, line)
local type_
if os.execute('cd '..path) ~= 0 then os.execute('mkdir '..path)
elseif os.execute('[ -f '..path.."/"..file..' ] && echo "s" || echo "n"') == 'n' then 
os.execute('cd '..path..' && touch '..file)
end
if act == 'ler' or act == 'read' or act == 'l' or act == 'r' then type_ = 'r'
elseif act == 'sobrescrever' or act == 'rewrite' or act == 's' or act == 're' then type_ = 'w'
elseif act == 'escrever' or act == 'write' or act == 'e' or act == 'a+' then type_ = 'a+' end
local f = io.open(path..'/'..file, type_)
if type_ == 'r' then
if text == 'all' or text == 'tudo' then return f:read('*all')
elseif text == 'line' or text == 'linha' or text == 'l' then return f:read('*l')
elseif text == 'sline' or text == 'linhas' or text == 'ls' then
local ltable = {}
for i in f:lines() do table.insert(ltable, i) end
f:close()
return ltable[line]
end
elseif type_ == 'a+' or type_ == 'w' then
if string.find(text, '__enter__') ~= 0 then
f:write(string.gsub(text, '__enter__', '\n', string.find(text,'__enter__'))..'\n')
else 
f:write(text..'\n')
end
f:close()
end
end
 
 
y la quest y al darle clic al pergamino no aparece nada no abre ninguna informacion
y si hice la carpeta noticias los txt fecha y noticias dentro de la carpeta 
aqui una foto
 
Debes iniciar sesión para ver el contenido del enlace en esta publicación.

 

xD, le diste permiso 777 ???

 

Recuerda darle permiso alos txt y ala carpeta para mas seguro (tambien ala quest xD)

 

Se le da  Permisos 777 para poder leer el archivo :D 

Enlace para comentar
Compartir en otros sitios

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...