Jump to content

Mitachi

Developer
  • Posts

    137
  • Joined

  • Last visited

  • Days Won

    3
  • Feedback

    100%

Everything posted by Mitachi

  1. @ Mali be careful, Webzen wants to take you out, it's a trap.
  2. Every time this guy releases something he gets slapped in the face, I'm sorry for that. When you release something it has to be ready to use, unfortunately. In another context that would be fine, but in a forum where 10/10 releases are ready to install/use, people WANT THIS. Dungeons should clearly be done in Lua, doing them in c++ just complicates your life, there is no real pattern, you use *10 lines of code and throw 15 years of hard tested lua dungeons pratices in the trash. But it's a release and plus it's not the first time you've released a dungeon in c++, clearly you can do whatever the fuck you want! ff: Since I've been on metin I've only known 3 developers who did only lua, all 3 swore they were the best in the world.
  3. Actually it is intended to be so, you get on and off the mount often during farming, equipping the item at the beginning avoids having to equip it every time (and even in the case of waiting seconds) To recall the mount you just have to do CTRL + G If you want CTRL + B to remove the seal anyway, that's enough: [Hidden Content] Or if you want CTRL + B don't remove your mount: [Hidden Content] For those who want bonuses to be awarded even if you are not riding, but simply have the mount summoned: [Hidden Content] If you use the mount costume system present in the Owsap files you may run into some problems.
  4. Download Center Internal Mega.nz GitHub Hi devs, I wanted to add this feature to my mainlines, being that this system is now considered standard in all servers. I downloaded the public version that emulated how the Pet System worked, but I decided to make my own (and am sharing it so you can test it for me as well) In game pic: Pros: Fewer lines of code (50 or so, versus 1200+ in the public system) By not using apply_type and value to assign the monster to ride, we will not lose a usable bonus Being horse-based, trivially it is code that has been tested for years. If you are on the mount and warp, you will still be on the mount at login (being that we use EnterHorse) You can take advantage of the horse name system with a few modifications You only get mount bonuses if you are riding it and not while it is summoned Cons: I couldn't find any Thanks to @ HFWhite for testing. You should at least have the mount costume system.
  5. It seems a bad use from quest, anyway, you can check the ptr before use bool CDungeon::IsUniqueDead(const std::string& key) { auto it = m_map_UniqueMob.find(key); if (it == m_map_UniqueMob.end()) { sys_err("Unknown Key or Dead : %s", key.c_str()); return true; } return it->second ? it->second->IsDead() : false; // 0x0 check }
  6. Something like: if (bDropInventory) // Drop Inventory { const bool bIsQuestRunning = IsQuestRunning(); std::vector<BYTE> vec_bSlots{}; for (int j = 0; j < INVENTORY_MAX_NUM; ++j) { pkItem = GetInventoryItem(j); if (pkItem && !(bIsQuestRunning && pkItem->GetType() == ITEM_QUEST)) vec_bSlots.emplace_back(j); } if (!vec_bSlots.empty()) People can somehow bug abuse the quest items, and throw them to the ground while using item.remove() or pc.item_remove() ::IsQuestRunning it's simply a function that returns the above expression, quest::CQuestManager::instance().GetPCForce(GetPlayerID())->IsRunning() #ifdef ENABLE_MISCELLANEOUS bool CHARACTER::IsQuestRunning() const { return quest::CQuestManager::instance().GetPCForce(GetPlayerID())->IsRunning(); } #endif
  7. Literally in all clients, to restore, just remove terrain from patch1. The files were never deleted, but overwritten. Index file gives precedence to files that are higher up, patch1(with the new textures) is above the old ones.
  8. Download Center Download (Internal) Download (GitHub) The tutorial contains an already configured json file! Q. What is trivially the difference? A. Here's an example: I tested it, here is some evidence + a dip into the past After installing, you can do /fish_simul to test if it works properly. Non-Critical issue The strings for fish names in Korean are broken at the time of reading I could have done something about it but I noticed that korean names are mostly used by fish_simul (A gm command used to test fishing), and since we are not Korean I didn't bother much to fix it, rather I did a cleanup to my fishing.cpp/.h which I can post below if you want. I thank @ martysama0134 for the idea.
  9. It's amazing the follow up to this post, when one releases something small, all the bots come out to be professors. Instead, when a thick developer releases something, nobody says shit, everybody says "wow you have a really long dick." Am I perhaps the only strange one that this check does in InstanceBaseBattle.cpp in ::CheckAdvancing? I ask for the meme BOOL CInstanceBase::CheckAdvancing() { ... //NOTE : Skil을 쓰더라도 Door Type과는 Collision체크 한다. if( bUsingSkill && !rkActorEach.IsDoor() ) continue; #ifdef FUNC_WALK_THROUGH_ENEMY // [Hidden Content] if (!IsAttacking() && rkActorEach.IsEnemy()) continue; #endif
  10. I did a small refactory, not tested yet: [Hidden Content]
  11. If you don't understand much about it and want to create a server, your server will be an abortion. You don't learn to work on files by systems installing, cuz the first tasks should not be "Okay, I'll copy and paste until it works." @ martysama0134 is not aiming not to insert systems, but to create/refactor what he inserts. Exactly by "assistance," what is meant by extended mainline with few systems (tested for years)? This post looks to me like a cleverly designed marketing strategy. Each answer is nothing more than a personal point of view, passed off as objective. Best regards
  12. Hi loves USE_TUNING and USE_DETACHMENT are part of the same case and are divided by if/else (Probably for the item removed in 2013 by Italian wiki): [Hidden Content] At first glance, when I read it, I didn't understand shit about it, so I decided to improve it and publish it; it's an unpretentious post, so enjoy it. [Hidden Content]
  13. I think it is the same person who posed as the owner of another forum, the same person who scammed 100 euros to my team a few days ago, kek.
  14. Thank you for sharing, I appreciate these types of additions because they came about to facilitate other types of scripts. I find them very useful
  15. Nice, thank you! I think it's the first cms released on m2dev
  16. Well, there are a few things to consider: If the error occurs every time you perform a certain action, the problem is definitely in the packet in question. If, on the other hand, it doesn't always happen but the package in question is always the same, skip to the part where I talk about the sequence system The packet header number itself isn't a problem, packets have their own cases in a switch, if the case has the same number, the compiler will warn you. It's not just the packet header number that's the problem, packages are literally typed structs, like this: /* We need to be sure that the data types used match */ // Server typedef struct SPacketGCTest { BYTE bHeader; WORD wSize; } TPacketGCTest; // Client typedef struct SPacketGCTest { BYTE bHeader; int wSize; // error, int <-> WORD are not the same. } TPacketGCTest; Usually the sequence system (or ENABLE_SEQUENCE_SYSTEM if you using martysama) corrects for differences in packet weights automatically but I don't like it to be honest, I don't find a valid use for it today, perhaps once it could have been useful. Honestly I turned it off, removing it I noticed less random crashes. TIP: If you have it enabled try disabling it, you will notice the error more easily. I have also disabled _IMPROVED_PACKET_ENCRYPTION_ in my mainline (and not, he didn't cause crashes or at least I didn't notice). But you have to change some things first, otherwise after some hours of activity you come across the sizebuffer error. PRO: More speed performance 34th packet are usually the HEADER_GC_WHISPER, do you have some custom system related? let me know. *ending* When it comes to mistakes of this kind, it is not black or white; there can be many reasons. I told you what I was going to do initially. This guide can certainly be useful to you:
  17. I really appreciate your 'optimization fetish', great job and thanks for sharing as always
  18. I don't know if you were looking for this, however just search on google, try to be more specific in the questions [Hidden Content] [Hidden Content]
  19. Download GitHub or Mega Hi guys! As we all know, the only trigger for quests on metin2 that is activated upon receipt of an item is pickup trigger (when x.pickup begin). Unfortunately, this only covers the case where you pick up an item from the ground, so it is very limited. Some people were asking to improve this, so I created a new trigger, with which you can cover other cases. For now, it works in these cases: Trade Buy from npc shop Buy from npc shopEx Buy from pc shop Pick up from ground /item command (for testing) Example: Spoiler This is just a draft, it already works, but if you have systems that interact with items, you will have to call it up under those systems as well. You can report to me below any new cases of getting items for new systems, I will help you.
  20. @ arves100 we want metin3 from you
  21. Welcome I'm Italian too, maybe I've already seen you somewhere
×
×
  • 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.