Jump to content

Recommended Posts

Posted

I decided to do a lesson, it seems to be on the Internet. And people still do not understand how to use.

I will show using the example of an olympiad map, cutting poles.

To do this, you will need:

1) Unreal Editor. 

2) Umodel.

3) 3DS MAX - MAX ACTOR.

4 )L2SMR.

5) Dev.Mode l2 - optional.

All the above software is on the Internet, say Google.

1) Go to Umodel, unpack our package Static Mesh - In this case on the map we will cut the poles from the package - Refine_colosseum.

Select it, press Export.

spacer.png

 

 

2) After unpacking, we are given a list of unpacked meshes.

spacer.png

 

3) Ah, yes, forgot how we will know the package? That's where the first point was supposed to be.

Launch L2SMR - Launch Map 17_10.unr and watch all possible Static Mesh.

After we find the name we need, we remember the name. And unpack in Umodel.

 

spacer.png

 

4)After all the manipulations done, we open the 3DS MAX- I have 2010. With a plugin

ActorX Importer


Press IMPORT PSK...

spacer.png

 

 

spacer.png

 

5)We open it. And we get Our Mesh - only without textures.

spacer.png

 

 

6) 

Next In the Front window - Cut Pillars, Why is there? Yes, because it is more convenient to highlight them there. Well, I also removed the squares naturally.

For the incomprehensible, it's here!

 

spacer.png

 

 

7) 

Cut, save in .ase format

Tick the box like mine.

 

spacer.png

 

8:) 

In fact, we completed 50% of this shit, open unreal editor.

Import our Static Mesh - No matter how you form it

"In my case there will be a Corasonobject."

By the way, one Unreal It is better to put in the root folder with Lineage II - we will open two copies, since we will have to apply textures to it.

 

spacer.png

spacer.png

 

9)Opened, our static mesh without textures, send a second copy of the unreal ED to the folder with the game, and open it. And we open the package Refine_colosseum_S - which is original. After opening. We find it, and we begin to copy lines with materials, transfer them from the original to our work.

 

spacer.png

 

Red highlighted what texture the park feeds our static mesh. open our sculpture, and choose two packs of textures there.

 

 

spacer.png

 

Ku0cw.png

 

10) 

Now, Ctrl + c and - ctrl + v.

GOGOGOGO!

spacer.png

Ku0n9.png

 

11)After working in 20 textures, we get the finished product and save it to the Static Mesh folder - the root folder of the game that the L2SMR will eat - to add static mesh to the map.

Ku0wN.png

Ku0z6.png

 

12)We open the SMR L2 and the map 17_10.UNR add a new staticmesh.

 

Ku1PR.png

 

13)

After that, he will appear at the very end of our swarms. In the meantime, we go to the original, remember its data. X, Y, Z - we write to the notebook.

And then we naturally take away from the map by changing the coordinates.

 

Ku1cI.png

 

 

 

Ku1X5.png

 

 

14) We go to the very end to our bag, inscribe the coordinates that were on the original. Next, click Set.

Ku1gz.png

 

 

15) 

Everything, static mesh on the map, now open dev_mode.ini (this is not clear to anyone, my ini for the launch of dev.mod. I put the starting map 17_10.unr).

Done version.

at1lztj12hgnjvxdegiu.jpeg

 

 

p.s. The lesson turned out to be long, perhaps somewhere wrong.

  • Like 5
  • Upvote 1
  • Maxtor pinned this topic
  • 2 years later...
  • 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