Jump to content

Gurgarath

Forum Moderator
  • Posts

    345
  • Joined

  • Last visited

  • Days Won

    6
  • Feedback

    100%

Everything posted by Gurgarath

  1. Do not do that on a live-server! It is an excellent tutorial, it works just fine and it is really cool. However, and like the following tutorial : Do not do it on a live server. For those wondering why the skills are completely broken, or why you have "skill.GetSkillType - Failed to find skill by 119" or why you have your character entirely broken, it is normal. I won't get into details, but all skill data, like quickslots, are stored in what we call a BLOB. When it comes to skill, all skill data, including passives and all classes from Warrior to Wolfman (if you have it), along with the skill level, are stored in this blob as hexadecimal. Depending on your datatype, it should be 1.49KB. However, if you add from tables.h a new byte, it will end up weighting 1.74KB. A direct result will be that the second line, which should start at offset 0x060 and end at offset 0x07F will have an additional byte, which will shift every skill result and end up overflowing into the next skill then, for example other columns. Well, in that case it is the other way around (it will read more than it should and end up short for the last skills) but your skills will be completely messed up anyway. You have tree solutions if you want to add this on a live-server : Rewrite skills to be stored in their own table instead of a BLOB in the player table, allowing you to properly extend data without having to mess with the Hexadecimal blob and export necessary data to the table. Properly understand the blob, then tinker with the data for every players to compensate this new BYTE. Replace every blob with a proper, reset one, but the impact will be a complete reset of every skill, for everyone. Bonus solution: Write your own version of the tutorial not impacting packets. For example through cmdchat, but it will be less clean, but that is what we used to do up to 2014 (legacy solution). Excellent tutorial however, I love this kind of quality of life, and it applies for both of what you shared!
  2. Good patch, thank you! The only reason I didn't do it this way is that I don't think people use the other polymorph marbles so I kept it simple. I personally do, but not like this, so I simply created a small helper function that I call to determine the adequate vnum. However, AutoGiveItem is better! uint32_t CHARACTER::GetAdequatePolymorphMarbleVnum(uint32_t dwMobVnum)
  3. Hello, thank you for your release but it is not a good or complete solution. Let me explain: It is better to not do "price * 1" as "price * 1" is simply equal to "price". pack2.items[i].price = item.price; In that case, both cases of the if are equal, you can then simply remove the following check and replace it with the code above. if (bOtherEmpire) pack2.items[i].price = item.price * 3; else pack2.items[i].price = item.price; Also, in shop.cpp you must remove the following piece of code for the change to be complete: if (it->second) // if other empire, price is triple dwPrice *= 3;
  4. Mine or Trial's? I didn't try Trial's, but about mine it's just related to a common game issue in which sometimes mounts without folders (or with wrong data) will not register your motion when walking and will only calculate it later on or on when idling (you can check that using /state while you move for example and notice that your coordinates don't move). It might actually be the cause of what you fixed in your screenshot, at least the symptoms looks similar!
  5. My post along with Trial's should fix every of your issue:
  6. To edit a .mse file, you can straight up head to World Editor and do the necessary work. The editor is pretty solid but has a learning curve. If it's just for color it is as you would expect in other softwares.
  7. Hello folks, This is not 100% official (because how could we know?) but on the official, you can obtain Polymorph Marbles of certain monsters when opening specific chests. If we do it by giving a Polymorph Marble, the marble won't polymorph you at all as it won't contain a mob vnum to polymorph you into. So here is a way to do it. [Hidden Content] Have a nice day!
  8. Because they don't, they have hardcoded values. You can see a list of values that represents the percentage from +0 to +9. You must get rid of that to give a +10% increase from the usual refine value
  9. Thank you for share! BYTE dir = (int) lua_tonumber(L, 4); I legit sighed. This is exactly what I said on the Discord two days ago, some types and some castings doesn't make a single sense at all. They will assign a BYTE for directions and other important stuff (causing this kind of issue or simply hard future-proof code) while casually assigning a DWORD and other way too big types for a single constant, let's say guild levels or the amount guild members
  10. Font problems are most likely due to external aka injected FXAA, which works with the depth buffer and if you use the default font handling, you will understand why it is giving font issues, the thing has to be built from the ground up. You might use MSAA instead of SMAA and the issues I quoted (except depth buffer) are probably linked to my own implementation, but I ended up fixing these issues. DX9 has already been published on this very website in 2015 with just an issue or two with minimap and ground textures. It's just that most people slept on it for a good 7 years before it started to reappear here and there. The main issue is that it requires many changes and it's usually better to either publish it all (with no support) or install it for people (which prompts it to be sold)
  11. I used to work on that a year or two ago (preview in spoiler) when I focused on overall look. Honestly it is good to keep it as is, but MSAA has two issues. First thing, it messes with depth buffer, which makes any external shaders working on top of it to fail. Second thing, it outlines small flaws that used to be invisible or hardly noticeable when it was aliased, namely the lines on the ground that separates chunks and the taskbar / tooltip background, which appears with a gap. This creates a bit of additional work if you want to fix it (and you would most likely want). I think the most performance friendly and overall result would be to use SMAA with or without FXAA.
  12. This is really, really weird as "my way" is basically the intended way and the way the game has been running on for years. I myself solved all the sync and lag problems with a properly populated and correct server data, while I had these issues when it wasn't properly populated (empty, inccorect or wrong accumulation data). If having nothing works for you, I guess you are better off this way as this is also less stuff to think about!
  13. Understand that it has nothing to do with the Lycan. Check my post and Trial's to see that this is unrelated with Lycan. Syreldar clearly summed up what I said in my post in 3 lines. The default value on some mounts create this issue with the TP check, and I don't feel comfortable with the server having default values when some monsters have specific accumulation values. It makes every server check mismatching with the client (you see a monster on (X, Y) coordinate while for the server it is at (X-10, Y+20) for example). This is what I meant by "undefined behavior". The game is intended to be populated with data matching the client. I am glad it helped
  14. Hello, I am not convinced by any of these fixes. Removing folders and mob_proto data will cause undefined behavior when it comes to server checks and PVE scenario. Calling "UpdateSectree" at every of your movement tick when riding a mount is the best way of making your server use way more resources than it should, for instance, use a ChatPacket to see how often Move() is called, now imagine that for UpdateSectree. I personally got rid of every of my issues like this (and I think it is a good read): And on the one hand, Trial's post is also really interesting and it is a good idea to add his solution as well.
  15. Thank you for your release! It is really cool! Also, this is one of the new addition that I feel the most weird about, it looks like a bug more than a feature somehow
  16. Hello, Not really, there are many guides on the forum, there is also a wiki but this is mostly for advanced users. There are beginner tutorials here, of course, but that is something that was kinda left out in the grand scheme of things as this forum is intended for more advanced users and we most likely all learned by fiddling stuff. You can always write guides yourself, we will appreciate that, even more if the thing is simple but not written out but you can of course always ask on support if you don't find something and the community will help you out. [Hidden Content]
  17. You quoted the solution to tell me the problem. Update your sources, simple as, use C++14/17>
  18. Hello, Why would you do this? It is a less performant version of what Syreldar already shared. Thank you for your release however
  19. I guess it might be what you are looking for? https://metin2.dev/topic/19456-experimental-full-terrain-render/
  20. Absolute chad move, thank you very much, I knew it changed but I was always unable to find anyone able to explain what it exactly was. Also, do you have screenshots or information of the entry conditions and stuff? For the scrubs like me who uses official locale_quest?
  21. Hey, please keep it civil, first and only warning. It doesn't matter if you have this bug or not, I don't have it, people have it, it must be because of things that has been changed in some sources and not on others, or things you added that tempered with it unintentionally, but it's no big deal. If you have this bug, use this fix and report for any issue, if you don't, then just leave a like because he shared something good. Thank you for your release, it will surely help many people.
  22. If we go into this, it is "abuse of a dominant position", it is when someone in a situation of monopoly, or of close monopoly in a field abuses of it to favor its other brand. For example, as Mali said, Google has been fined, Amazon too as Asikoo said, but Microsoft too, for example with "Media Player"; that is why we don't have it shipped completely anymore and that is also why they created a special Microsoft version for the European Market. On a side funny note (I am kinda joking though), it creates the same issue as in communism, except this time, it's the corporation that controls a branch of the market instead of the state About private servers, I do not know who owns who, but an independent, uncheatable topsite is what we need. That's for the greater good of everyone (and that's called free market)
×
×
  • 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.