caanmasu 428 Report post Posted May 16, 2019 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ó - Es necesario reiniciar el servidor - El objeto debe ser tipo 18 en el item_proto, o lo que es lo mismo ITEM_QUEST - Solo se editan las dos rutas que están en la parte del questlib.lua 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 30 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 página es de 30. 3. No olvidar cambiar la ruta por la 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 when letter with pc.is_gm() begin send_letter("GM: Go All Map") end when button or info begin say_title("Go All Map by Camilo") local max_button = 30 local nombres_mapas, index_mapas = list_folder_maps() local cant_pags = math.ceil(table.getn(nombres_mapas)/(max_button-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, max_button-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 say_title("Go All Map by Camilo") local sel = select_table(tabla_madre[sel1]) if sel != table.getn(tabla_madre[sel1]) then local x, y = xx_coords_town_folder_map(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(map) local det, tab, spc = io.open('/usr/game/share/locale/turkey/map/'..map..'/Town.txt'), ' ', ' ' --aquí debes cambiar la ruta 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() local map, index = {}, {} local det, tab, spc = io.open('/usr/game/share/locale/turkey/map/index'), ' ', ' ' --aquí debes cambiar la ruta 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 Parte de quest_functions xx_coords_town_folder_map list_folder_maps Adjunto actualizado Debes iniciar sesión para ver el contenido del enlace en esta publicación. 30 1 1 Magueta, lolo cortes cortes, Geffy and 29 others reacted to this Quote Share this post Link to post Share on other sites
xeon3539 2 Report post Posted May 16, 2019 Buen aporte, felicitaciones! Quote Share this post Link to post Share on other sites
caanmasu 428 Report post Posted May 16, 2019 Corregí un pequeño error. Ya compila xD! Actualicen y arranquen! Quote Share this post Link to post Share on other sites
【ℛ-𝓝】ℛ𝔂𝓼𝒆 2,420 Report post Posted June 1, 2019 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 Quote Share this post Link to post Share on other sites
caanmasu 428 Report post Posted June 1, 2019 hace 8 horas, 【ℛ-𝓝】ℛ𝔂𝓼𝒆 dijo: Gracias por el aporte, tendrías uno para uso de los usuarios? :3 Ok. Crearé mi propio anillo teleport y lo posteo. Ahora no puedo hacerlo, estoy en época de exámenes cuando lo suba te aviso 1 【ℛ-𝓝】ℛ𝔂𝓼𝒆 reacted to this Quote Share this post Link to post Share on other sites
caanmasu 428 Report post Posted October 2, 2019 Recomendación para instalar agregada. Ver publicación de nuevo. Go go go! Quote Share this post Link to post Share on other sites
Antonio Jose Polanco Rodriguez 3 Report post Posted May 9, 2020 gracias Quote Share this post Link to post Share on other sites