Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 08/08/20 in all areas

  1. It is not really that hard to do actually. Inside CRenderTarget.cpp there is a function called RenderModel. And inside that function there is this call: camera_manager.GetCurrentCamera()->SetViewParams( D3DXVECTOR3{ 0.0f, -1500.0f, 600.0f }, D3DXVECTOR3{ 0.0f, 0.0f, 95.0f }, D3DXVECTOR3{0.0f, 0.0f, 1.0f} ); The first parameter here is the position of our camera that looks at the target. Second paremeter is the position of our target. The third parameter here is not important for us. (Though it should be always D3DXVECTOR3{0.0f, 0.0f, 1.0f} otherwise we might get weird errors.) So if you want to zoom out you need to either change the position of the camera or the target. What can you do is have a member variable inside CRenderTarget class. Something like this : D3DXVECTOR3 m_cameraPosition; Initialize this variable inside CRenderTarget constructor like this: m_cameraPosition = D3DXVECTOR3{ 0.0f, -1500.0f, 600.0f }; And change the above code to this: camera_manager.GetCurrentCamera()->SetViewParams( m_cameraPosition, D3DXVECTOR3{ 0.0f, 0.0f, 95.0f }, D3DXVECTOR3{0.0f, 0.0f, 1.0f} ); Now when you change the m_cameraPosition to whatever value you want the camera position will be changed instantly.
    2 points
  2. M2 Download Center Download Here ( Internal )
    1 point
  3. M2 Download Center Download Here ( Internal ) Hi, here I publish my edit of the public Render Target System. I hate it, when people earn money with public systems. Preview: [Hidden Content] DL: [Hidden Content] Original Thread [Hidden Content]
    1 point
  4. Ladies and gentlemen, on behalf of Metin2Dev Airlines we would ask you to kindly follow this safety announcement. Please take your assigned seat, mentioned in your boarding pass. When sat down, please fasten your seat belt at all times, as turbulence can occur during the flight. We ask you to make sure that your luggage is properly stored in the overhead bins. In the unlikely case you won't like this topic, please take a moment and locate the nearest back or exit button of your browser. Should you be utterly disgusted at what I'm saying, a vomit bag is located in the seat in front of you. It's going to be a long read. I think it's been almost 10 years since I first opened Metin2. Ten years! I was still playing Club Penguin at the time, I mean that's how I've heard about the game in the first place - from an ad on Club Penguin's page! And if I sit down and think of it, the game was 6 years old 10 years ago! I'm really curious, what other 16-year-old pieces of software do you guys use? If you do, how do you manage to use that piece of software nowadays? I know I've struggled a fair share to get Borland C++ 4.52 to run reliably in DOSBox. My point is that in 2004 we didn't even have multi-core CPUs yet! The only way you could do multi-threading was by physically chucking as many CPUs onto a motherboard as you physically could. Or by distributing the computing load. The latter is what YMIR did. Initially, Metin2 was intended to run each core on their own server. One for the database cache, one for authentication, and a couple more for the maps (depending how far down you could reach in your pockets - we didn't have $5 DigitalOcean or AWS containers back then, servers were expensive). That's why nowadays we have to fiddle around with peer-to-peer TCP/IP configuration on all the Metin2 server cores. Metin2's architecture aged like milk. To give credit where credit is due, parts of it were updated with time. But I'll bet you a coffee that libthecore hasn't changed much since the initial version. It's quite awesome that we actually can run this code quasi-reliably. Kudos to C++, in a world where JavaScript breaks backwards compatibility whenever wind changes direction. Other than the dated architecture, the other problem I have with the Metin2 server is the code itself. I don't say it's easy to code such a dinosaur, but if you pay attention to the coding style and mistakes, you can actually see how YMIR devs improved over time. Which is perfectly fine, we all learn. The terrible part is that we can see their progress in acquiring this skill. They never fixed their silly mistakes, or did so very, very late (remember the /dice bug?). The final nail in Metin2's coffin is BSD. At the time when they decided upon the architecture, Linux was nothing more than a toy, a fun gimmick like Docker and Kubernetes are today. Sure, you could have used Linux in production environments, but you would have been regarded a maniac if you did. Sure, some companies saw its potential and became early adopters. But the standard was still to use the tried and battle-tested, UNIX-certified BSD, which hails from 1977. In my country's 1977, we couldn't even talk about how dumb our leaders were without risking being beaten by the police, yet others were making huge technological advances. There's nothing wrong with FreeBSD nowadays either. It's just that it's way, way easier to code for Linux. It has become the de facto standard. So we've got an old, half-baked and out-of-spec server on our hands. Great! To me, working on the Metin2 server has become like one of those relationships in which you don't really like your partner, you fight all the time, yet you still stay together because you feel attached to them. It's plainly bad and it must go away. Just look at this forum, it's full of hotfixes, and whenever an actual feature release comes up, you have to find and replace tons of stuff and you don't even know if it will break any other system you have installed. Why can't we have some sort of plugin system so that we end this agony? The topic of porting Metin2's server to Linux has come up numerous times here. Yet it has to be done underground, because God forbid making your code public, because daddy Gameforge is going to knock on your door like it's 1977. I don't want to get into this discussion, but it's their right. A light has shined before my eyes, though. Recently, a friend has asked me to help him out with hosting a Lineage 2 server. I don't know pretty much anything about this game, but I've found out one thing: there are two big classes of server software: the OFF, meaning the original server files NCSOFT developed, and L2J, a Java-written emulator for the same server files. And the thing is, people have been sued for running the original server files, but not for using the Java edition. Not to mention that the Java edition is publicly available in its various forks on GitHub and Bitbucket. I guess you see where this is going. If we're all stuck at home, why don't we come together, join our efforts and rewrite the server in a more future-oriented, sensible way? This would mean less risk of being thrown in jail by Gameforge. Not to mention that we don't need to do any reverse engineering as the source code is readily available, and this is a huge, a monumental advantage. The official Metin2 is going to be dead in a matter of years, but Gameforge not so much. This means that any future support and development for the game lies within the open-source community. If we're going to do this, we should aim for the future. We should take into account the architecture of current systems. We should think of built-in redundancy in case one of the server crashes. And as much as I like C++ and its power, with great power comes great responsibility. It's simply too easy to make mistakes in C++. Not to mention the hell you must go through to simply include a library (In a way, it's a good thing since it forces you to think, not blindly include another library for adding two numbers like you would do in JS). C++ is one of those toxic relationships and I suggest moving to a tool more fit for the job. A language like Rust would do the job, for instance. It compiles down to machine code, it includes a network stack by default, it can read JSON and XML files, and it has many more features I didn't hear about yet. I never wrote anything in Rust, but it's just syntax. Real programming is about tackling problems, not about syntax. I'm open to any ideas or suggestions. Maybe I'm talking sh*t and Metin2 deserves to die. But I'm looking at you, Vanilla, Shogun, MartySama, Sanchez and all others who genuinely contributed to the community with original work but I can't name because I'm a stupid prick with 32kB of memory. What do you think? It's a huge task, yet manageable if we all give our best. Don't take anything I wrote here for granted, if you come with a good reason on why we should rewrite the game in MIPS Assembly and run it on PS2s, I'm open for it. Thank you for choosing Metin2Dev Airlines.
    1 point
  5. Revert the codes back and don't do what you don't understand.
    1 point
  6. Haven't really took a deep look but the thing that pointed out to me is party flag that saves dungeon index is set when you talk with the NPC 20531. Because you warped out before starting the dungeon, party flag was not saved and you were teleported to a new instance. I'd recommend to move this part to somewhere else like make_dungeon() function. party.setf("dungeon_index", d.get_map_index()) d.setf("party_leader_pid", party.get_leader_pid())
    1 point
  7. M2 Download Center Download Here ( Internal ) Hi ! Today ThunderCore Society will offer you a special tool for 3d MAX Software. Note: That tool isn't for begginers and we don't offer suport for that. We hereby inform you that we take the copyrights file and his contents because ThunderCore Society has paid to perform this work. There exists an "readme" file that contains some informations about how to install the script. Attention: These files are under copyright and licensed by ThunderCore Society. Any violation of the license may result in suing. Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. NonCommercial — You may not use the material for commercial purposes. NoDerivatives — If you transform, or build upon the material, you may not distribute the modified material. No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
    1 point
  8. Good idea, but the python part is a bit too much, 200 lines for 5-6 functions. Can be like: _____________________________________________________________ Can be like: Btw, for rest you can take a look how they're rended and do something like: [Hidden Content] Here you can hide the 'terrain', 'object', 'cloud', 'water', 'tree', and you can disable the effects and more too if you take a look inside of GameLib. Over 1.5 year ago i extended a bit my release but didn't had enough time to post it, i'll update the repository with the new code when i'll have time to finish it. That feature allow you to hide specific effects, tree, bulding by property crc or name (not finished) and write them into files like: graphic_mask/building.txt general_obj_stone14 ob-b1-005-woodbarrel landmark_statuestone B_general_obj_40 general_obj_jar_yellow01 graphic_mask/effect.txt 8182371290 1003918098 volcano_greatsmoke.mse warpgate01 fall_7 fire_general_obj_charcoal.mse PythonGraphicMask.cpp PythonGraphicMask.h
    1 point
  9. I already bought a version of the game that was compiled back in 2004 and has some interesting things, whenever i will be done with the unpacking i might just publish the resources. However i did not find that armor texture
    0 points
  10. That stuffs is from the actual 2004 (Korea) client originally. (Maybe he recreated them in 3D, idk) This client is from 2005 (China) despite the topic name, just check the file dates. 2004 Korean one is just gone, reduced to atoms. Many of us tried to look it for years. Only very limited people were able to play that beta, that's why no reupload just some picture.
    0 points
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.