Jump to content
Sign in to follow this  
caanmasu

[QUEST] Todos los mapas del server en un anillo

Recommended Posts

EDITO:

Hola! 

Si no te ha servido el Go All Map debes agregar tu ruta absoluta:

En el questlib busca:

function xx_coords_town_folder_map(country, map)
	local det, tab, spc = io.open('locale/'..country..'/map/'..map..'/Town.txt'), '	', ' '

y pon la ruta absoluta para llegar a Town.txt. Generalmente es:

/usr/game/share/locale/COUNTRY/map/NOMBRE_DEL_MAPA/Town.txt

entonces queda la línea así:

	local det, tab, spc = io.open('/usr/game/share/locale/'..country..'/map/'..map..'/Town.txt'), '	', ' '

Haces lo mismo con la ruta de list_folder_map:

Está así:

	local det, tab, spc = io.open('locale/'..country..'/map/index'), '	', ' '

y la dejas así:

	local det, tab, spc = io.open('/usr/game/share/locale/'..country..'/map/index'), '	', ' '

 

Si ya la agregaste y al abrir alguna página de la quest te aparece en modo película (borde negro arriba y abajo y nada más), entonces debes reducir la cantidad de botones. Deja el max_button en unos 35 y prueba de nuevo.

 

 

Consejo si lo quieres poner como button o info (pergamino de misión): reinicia el servidor cada vez que agregues una quest con letter. Si no lo haces, aparecerá el letrero pero al darle clic no funcionará. Si la quest ya está creada y funciona el letter normal, cuando hagas un cambio en la quest, no es necesario reiniciar el server, solo fue la primera vez mientras agregabas el letter.

 

Eso es todo por esta edición. Éxitos!

 

 

 

 

 

 

Hola mi gente! 

Hoy les traigo una quest elaborada 100% por mí desde la concepción de la idea xD

Dale Me encorazona 😄

Vídeo demostrativo:

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

 

Descripción en el archivo de la quest

Dale Me encorazona si te gustó 🙂

 

EDITADO:

Y agreguen la quest, las funciones en el questlib y por último agregar las funciones xx_coords_town_folder_map y list_folder_maps en el quest_functions

(Revisa si tu objeto es type 18)
 

 

Quest go_all_map.quest

--[[
QUEST METIN2
Quest creada por Camilo Martínez
Es un anillo teleport donde se puede acceder
a la totalidad de los mapas del juego.

Especificaciones:
1. Al darle clic al objeto, aparecerán botones de nombres
página #, donde cada página muestra 43 mapas y la última los
restantes mapas.
2. Al seleccionar una de las páginas y luego uno de los mapas,
transportará al personaje a ese mapa en las coordenadas centrales

Notas:
1. Recomendable para solo uso GM, esto es administrativo. Pero igual
pueden usarlo a su antojo, solo es una recomendación :)
2. La cantidad máxima de botones por defecto puse 44 porque se bugeaba
a los 45+
3. No olvidar cambiar el país (locale/xx) por el de tu servidor
4. Se enlistan todas las líneas del index de la carpeta map.
No debe haber ninguna línea vacía en ese archivo. 
Se toma el index y el nombre del mapa (nombre de la carpeta) por aparte.
Luego con el nombre del mapa se va a la ruta del mapa y en Town.txt 
tomará la primera coordenada. Posteriormente se hace un warp_local
donde se le envía el id del mapa y las coordenadas del Town*100
5. Si los separadores son espacio y tabulador, se tomará sin problema
los datos de los archivos. Si hay varios espacios simulando un tabulador,
no se tomará en cuenta. Es decir:
Si tienes en Town.txt las coordenadas 433  542,
habrá un error porque tienes dos espacios.
Lo correcto es que haya un solo espacio o un solo tabulador.
6. Si no te transporta es porque el mapa puede estar mal implementado
7. No olvides poner la parte del questlib.lua
8. Tampoco olvides poner las funciones en quest_functions
xx_coords_town_folder_map
list_folder_maps
7. Cualquier error reportar
8. Que lo disfruten :)
y como siempre, mi Discord:
Camilo#0869
--]]
quest go_all_map begin
	state start begin

		function info()
			return{
				["max_button"] = 44,
				["country"] = "hungary",
			}
		end

		when 40004.use with pc.is_gm() begin
			local s = go_all_map.info().max_button
			local t = go_all_map.info().country
			local nombres_mapas, index_mapas = list_folder_maps(t)
			local cant_pags = math.ceil(table.getn(nombres_mapas)/(s-1))
			local tabla_madre, tabla_select = {}, {}
			local tabla_madre_index = {}, {}
			local aux = 1
			for i=1, cant_pags do
				table.insert(tabla_madre, {})
				table.insert(tabla_madre_index, {})
				table.insert(tabla_select, "Página "..i)
				for j=1, s-1 do
					tabla_madre[i][j] = nombres_mapas[aux]
					tabla_madre_index[i][j] = index_mapas[aux]
					aux = aux + 1
				end
				table.insert(tabla_madre[i], "Cerrar")
			end
			table.insert(tabla_select, "Cerrar")
			local sel1 = select_table(tabla_select)
			if sel1 != table.getn(tabla_select) then
				local sel = select_table(tabla_madre[sel1])
				if sel != table.getn(tabla_madre[sel1]) then
					local x, y = xx_coords_town_folder_map(t, tabla_madre[sel1][sel])
					pc.warp_local(tabla_madre_index[sel1][sel], x*100, y*100)
				end
			end
		end
	end
end

 

 

Parte del questlib.lua

function xx_coords_town_folder_map(country, map)
	local det, tab, spc = io.open('locale/'..country..'/map/'..map..'/Town.txt'), '	', ' '
	local x, y = 0, 0
	for line in det:lines() do
		if table.getn(split(line, tab)) == 2 then
			x = split(line, tab)[1]
			y = split(line, tab)[2]
			return x, y
		elseif table.getn(split(line, spc)) == 2 then
			x = split(line, spc)[1]
			y = split(line, spc)[2]
			return x, y
		else
			return "ERROR"
		end
	end
end

function list_folder_maps(country)
	local map, index = {}, {}
	local det, tab, spc = io.open('locale/'..country..'/map/index'), '	', ' '
	for line in det:lines() do
		if table.getn(split(line, spc)) == 1 then
			table.insert(map, split(line,tab)[2])
			table.insert(index, split(line, tab)[1])
		else
			table.insert(map, split(line,spc)[2])
			table.insert(index, split(line, spc)[1])
		end
	end
	return map, index
end

 

 

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

Share this post


Link to post
Share on other sites
En 17/5/2019 a las 1:55, caanmasu dijo:

Corregí un pequeño error. Ya compila xD!

Actualicen y arranquen!

Gracias por el aporte, tendrías uno para uso de los usuarios? :3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...