Jump to content

IGNEEL

Member
  • Posts

    22
  • Joined

  • Last visited

  • Feedback

    0%

About IGNEEL

  • Birthday 08/17/2001

Informations

  • Gender
    Male

Recent Profile Visitors

6069 profile views

IGNEEL's Achievements

Rising Star

Rising Star (9/16)

  • Very Popular Rare
  • Conversation Starter
  • Reacting Well
  • Dedicated
  • First Post

Recent Badges

123

Reputation

  1. While reviewing the DestroyItem logic, I noticed a potential inconsistency in the ownership validation check. Inside ITEM_MANAGER::DestroyItem(), the code performs the following lookup: if (CHARACTER_MANAGER::instance().Find(item->GetOwner()->GetPlayerID()) != nullptr) However, Find() operates on the character VID map (m_map_pkChrByVID), while GetPlayerID() returns Player ID. This introduces a mismatch between the lookup key and the expected identifier type. As a result, this check will almost always fail and return nullptr, meaning the condition is effectively not reliable for validating the character existence through this path. From what I understand, this safety check was intended as a defensive check rather than part of the normal item lifecycle. In the standard execution flow, items owned by a character should already have been detached via RemoveFromCharacter() before reaching M2_DESTROY_ITEM, while items on the ground naturally have no owner and do not require this validation. The concern arises in edge cases where the destruction flow is triggered while the item is still logically attached to a character. In such scenarios, this validation does not correctly reflect the real ownership state due to the PID/VID mismatch. Fix Change Find() to FindByPID() In item_manager.cpp, find: if (CHARACTER_MANAGER::instance().Find(item->GetOwner()->GetPlayerID()) != nullptr) Replace it with: if (CHARACTER_MANAGER::instance().FindByPID(item->GetOwner()->GetPlayerID()) != nullptr) special thanks to @ Abel(Tiger) and @ Gurgarath For taking the time to clarify this behavior.
      • 9
      • Metin2 Dev
      • Love
  2. First of all, thanks to Mali for the Post Process it’s truly a beautiful framework! I’ve added Color Settings to control Contrast, Brightness, and Saturation. The FX shaders were written by Claude AI (I’m not an expert in shaders). I’m too lazy to create a full tutorial, so just search for ENABLE_SETTING_COLOR. Note: I removed Mali’s shaders to make it easier to extract the color-settings shader. ShaderManager.cpp ShaderManager.h color_settings.fx For testing Preview: [Hidden Content]
  3. I think you are talking about this uiShop.py -def open() self.smallRadioButtonGroup.OnClick(0) # 0 is num of default tab. You should make changes so that the default tab number is determined by 'shop_vnum'.
  4. yes, It Works perfect!
  5. Thank you , this function is very important for Arab servers?
  6. IGNEEL

    Lobby Map

    good work Toki
  7. good idea :")
  8. send uiInventory.py
  9. open locale_interface.txt YANG_NEW Yang GAYA_NEW Gaya WON_NEW Won
  10. try this [Hidden Content]
  11. send ClientManagerPlayer.cpp and char.cpp, uiTaskBar.py
  12. import grp in interfacemodule
  13. wtf ? where's your brain ?? @jesus @batman @recardo
  14. @MrQuin helped
×
×
  • 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.