Jump to content

Recommended Posts

Posted (edited)

As many people don't know, there is a way for you to "SEE" the actual GeoData In-Game, most people don't have any idea about but there is a command for it, ///geodata, usually it won't work as it is, but its because you cannot load the GeoData Grid from the server, it must be inside the Client files. So what you have to do to see it ? Easy.

1. Copy the geodata folder with the conv.dat files inside it to the system folder in your game folder.

 

2.Using a builder account write in-game ///geodata.

3.Enjoy the results.

23og.jpg

Edited by Sighed
Posted

Usefull info for people. Keep it up!

Thanks, i guess now that people will see the whole squares that you see in the Geo Editor also in-game will understand easier about how it works.

Posted

Thanks, i guess now that people will see the whole squares that you see in the Geo Editor also in-game will understand easier about how it works.

 

Indeed. I admit that in the past 4-5 years since I work with l2off files I never touched that command. Only what I used in geodata it was to generate the pathnode file. And in Geo Editor never looked but true now is more easy to understand how it works.

  • 3 weeks later...
Posted

Nice little tidbit of infor thanks! Didn't know about this before. What do you use for a geo editor? It has been a few years since I played around with Geo and think I used to have a Russian made one but no longer have it. if you could put it up for download that would be awesome :)

  • Vision changed the title to Geodata In-Game Grid
  • 10 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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.



  • Posts

    • we all love you very much Guytis💖 🤗
    • W/e u smoke there, i want aswell... life has been cruel all this time! Maybe it will help me
    • I would like to take this opportunity to publicly apologize to the following people:   @Acacia, @Victory, @Splicho, @ShadowNetwork, @l2gold2025, @SkyLord, @maneco, @F4sh10n, @Maxtor, @Celestine, @911reg, @Nightw0lf. @UnknownSoldier   If at any point my words, actions, or posts offended you, I sincerely apologize. I recognize that in the past there were moments of tension and unnecessary conflict, but today I want to leave all of that behind. From now on, I choose not to hold any grudges against anyone and to let go of everything that happened — from both sides. The path I want to follow in this community is one of collaboration, mutual respect, and growth. Thank you to those who are still contributing and sharing. Sincerely,   Guytis
    • I found a dev , I will edit this post and start tomorrow as to build a 100 percent retail l2 Pride volos style like the old times   Features: Chronicle: Interlude  Xp:999 Sp:999 Adena:999 Start level : 80   Fast farming system : up to 3 hours for S grade equipment and up.to 5 days for later added 2 armor and weapon sets   Buff time 59mins all Full Npc buffer,  I will have buffers but with no heal close by for all areas  Reasonably priced Gm Shop, Gatekeeper, Free noblesse On death you dont lose sny materials and such except for very few if you P.k.   CP,hp,mp potion for 200 each   all players go from.No grade gear to S grade  with each different part of weapon , armor set,jewels,dyes,tattoos having different stats and such   Unique system of skills and little tweaks,     All classes of heroes have a fighting chance each with a different purpose and character..     All skills and deffus work for 70% chance of success and up  but for 4 to 7 sec each.   Many different areas of xp,sp and farm, 2 3 different farm pvp areas and all changing some. Days of the week, Also 2 party farm and pvp areas will be added.     All mini raid bosses and bosses have an hour respawn time.   As for special bosses  All have 1 hour almost  respawn time except for , Valakas and antharas with 3 hours.   And lastly  , 5 different events will be available for a good reward 5 times a day.  
    • Чтобы скачать файлы с сайта Akumu, вы можете использовать этот код на Node.js. Понадобятся два пакета: axios и cheerio.   это медленно, но делает свою работу   P.S. пропускает файл, если он присутствует и не изменен   const axios = require("axios"); const cheerio = require("cheerio"); const fs = require("fs/promises"); const path = require("path"); const BASE_URL = "http://akumu.ru/lineage2/L2NA/P746/"; const OUTPUT_DIR = "./downloaded"; async function delay(ms) { return new Promise((res) => setTimeout(res, ms)); } async function downloadFile(url, filepath) { // Skip download if file already exists and was not modified today try { const stat = await fs.stat(filepath); const mtime = stat.mtime; const today = new Date(); if ( mtime.getFullYear() === today.getFullYear() && mtime.getMonth() === today.getMonth() && mtime.getDate() === today.getDate() ) { // File was modified today, do not skip } else { console.log(`File exists, skipping: ${filepath}`); return false; // Indicate skipped } } catch (e) { // File does not exist, proceed to download } const writer = await fs.open(filepath, "w"); const response = await axios({ url, method: "GET", responseType: "stream" }); const totalLength = parseInt(response.headers['content-length'], 10); let downloadedLength = 0; let lastLogged = Date.now(); let lastDownloaded = 0; const lastModified = response.headers["last-modified"]; const mtime = lastModified ? new Date(lastModified) : new Date(); return new Promise((resolve, reject) => { const stream = writer.createWriteStream(); response.data.on('data', (chunk) => { downloadedLength += chunk.length; const now = Date.now(); if (now - lastLogged > 1000 || downloadedLength === totalLength) { const percent = totalLength ? ((downloadedLength / totalLength) * 100).toFixed(2) : 'N/A'; const speed = ((downloadedLength - lastDownloaded) / ((now - lastLogged) / 1000)) / 1024; // KB/s process.stdout.write(`\rDownloading ${path.basename(filepath)}: ${percent}% (${(downloadedLength/1024).toFixed(1)} KB/${totalLength ? (totalLength/1024).toFixed(1) : '?'} KB) ${(speed).toFixed(1)} KB/s `); lastLogged = now; lastDownloaded = downloadedLength; } }); response.data.pipe(stream); response.data.on("end", async () => { await writer.close(); process.stdout.write("\n"); // Set mtime and atime try { await fs.utimes(filepath, mtime, mtime); } catch (e) { console.warn( `Failed to set file timestamp for ${filepath}:`, e.message ); } resolve(true); // Indicate downloaded }); response.data.on("error", async (err) => { await writer.close(); reject(err); }); }); } async function crawlAndDownload(url, localPath) { console.log("Visiting:", url); // Ensure local path exists await fs.mkdir(localPath, { recursive: true }); const { data } = await axios.get(url); const $ = cheerio.load(data); const links = $("tbody a") .toArray() .map((el) => $(el).attr("href")) .filter((href) => href && href !== "../"); for (const href of links) { const fullUrl = new URL(href, url).href; const decodedHref = decodeURIComponent(href); const targetPath = path.join(localPath, decodedHref); if (href.endsWith("/")) { // It's a folder, recurse normally await crawlAndDownload(fullUrl, targetPath); } else { // It's a file, retry download indefinitely on failure while (true) { try { console.log("Downloading file:", fullUrl); const downloaded = await downloadFile(fullUrl, targetPath); if (downloaded) { await delay(1000); // Delay only if file was downloaded } break; // Success or skipped, exit retry loop } catch (err) { console.error( `Failed to download ${fullUrl}, retrying... Error: ${err.message}` ); // Optionally wait before retrying to be gentle on server await delay(3000); } } } } } crawlAndDownload(BASE_URL, OUTPUT_DIR) .then(() => console.log("Done!")) .catch((err) => console.error("Error:", err));
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock