Jump to content

Ken

Bronze
  • Posts

    726
  • Joined

  • Last visited

  • Days Won

    44
  • Feedback

    0%

Ken last won the day on May 14 2019

Ken had the most liked content!

About Ken

  • Birthday July 10

Informations

  • Gender
    Not Telling

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Ken's Achievements

Mentor

Mentor (12/16)

  • Very Popular Rare
  • Week One Done
  • One Month Later
  • One Year In
  • Conversation Starter

Recent Badges

880

Reputation

  1. M2 Download Center Download Here ( Internal ) Hey everyone, it's a nice day to share something I just wrote Grid class in python language. You can use it as fast moving into the window with this or something else. Usage: from grid import Grid import item import chat grid = Grid(width=5, height=9) item.SelectItem(11299) (width, height) = item.GetItemSize() available_position = grid.find_blank(width, height) if available_position == -1: chat.AppendChat(chat.CHAT_TYPE_INFO, "There is no available position.") return chat.AppendChat(chat.CHAT_TYPE_INFO, "Available position is %d" % (available_position)) Best Regards Ken
  2. If you've interest about reverse engineering, you can check out this tool. (I can't say it's better than IDA). It's just made by NSA. Here is the link for ya. The tool was written in Java. (To provide cross-platform support). [Hidden Content] Installation guide is here too: [Hidden Content]InstallationGuide.html Best Regards Ken
  3. With 19.1, They've added two GUI in the game. (Lucky box, The new fish system). Here are two files. FishingGameWindow.py LuckyBoxWindow.py About the new cheat blocker ; Webzen should try harder than this. At least gameguard was better than this Thanks to @T4UMP Best Regards Ken
  4. As i see in your codes, you're just trying to show the item's full name that which has not full name (skill book, skill forget items and polymorph items) when you pick up them on the ground. I liked thank you for sharing with us. Best Regards Ken
  5. It seems like you're missing format when you call sys_log function. Can you show us to your char_item.cpp, please? Best Regards Ken
  6. There is nothing to do with the Syserr file. Do you have any game.core file in your channel folders? It seems like you do have one.
  7. Ken

    Manu Mount + Texture

    The blue lines does not look good. It could be good without them too. Thank you for sharing with us.
  8. You can show your character as a NPC. You just need to add a few variables and write a few situations with that variables prevent from Null pointer or unexpected errors. (I mean crashing game file)
  9. Hi everyone, I would like to share a memory leak fix about pack type Hybrid, Hybrid with SDB and panama. I saw it while analyzing Webzen's new pack type. EterPack.cpp Search this: if( !m_pCSHybridCryptPolicy->DecryptMemory(std::string(filename), static_cast<const BYTE*>(*data), index->data_size, *zObj) ) { return false; } Replace with this if( !m_pCSHybridCryptPolicy->DecryptMemory(std::string(filename), static_cast<const BYTE*>(*data), index->data_size, *zObj) ) { delete zObj; return false; } Search this: if( !m_pCSHybridCryptPolicy->GetSupplementaryDataBlock(std::string(filename), pSDBData, iSDBSize) ) { return false; } Replace with this if( !m_pCSHybridCryptPolicy->GetSupplementaryDataBlock(std::string(filename), pSDBData, iSDBSize) ) { delete zObj; return false; } Search this: else if (COMPRESSED_TYPE_PANAMA == index->compressed_type) { CLZObject * zObj = new CLZObject; __Decrypt_Panama(filename, static_cast<const BYTE*>(*data), index->data_size, *zObj); out_file.BindLZObjectWithBufferedSize(zObj); *data = zObj->GetBuffer(); } Replace with this: else if (COMPRESSED_TYPE_PANAMA == index->compressed_type) { CLZObject * zObj = new CLZObject; if (!__Decrypt_Panama(filename, static_cast<const BYTE*>(*data), index->data_size, *zObj)) { delete zObj; return false; } out_file.BindLZObjectWithBufferedSize(zObj); *data = zObj->GetBuffer(); } Best Regards Ken
  10. Hi, everyone today I would like to share a fix which Webzen has made with you. The fix is about the target position. Ymir is not checking if the target is on horse or not. It would be useful for range attacks. Find this: D3DXVECTOR3 CActorInstance::OnGetFlyTargetPosition() { D3DXVECTOR3 v3Center; if (m_fRadius<=0) { BuildBoundingSphere(); v3Center = m_v3Center; } else { v3Center = m_v3Center; } D3DXVec3TransformCoord(&v3Center, &v3Center, &GetTransform()); return v3Center; } Replace with this: D3DXVECTOR3 CActorInstance::OnGetFlyTargetPosition() { D3DXVECTOR3 v3Center; if (m_fRadius <= 0) BuildBoundingSphere(); v3Center = m_v3Center; D3DXVec3TransformCoord(&v3Center, &v3Center, &GetTransform()); if (__IsMountingHorse()) v3Center.z += 110.0f; return v3Center; } Best Regards Ken
  11. Psuedo-Code ; signed int __stdcall CPythonNonPlayer::GetMonsterHitRange(char a1) { signed int v2; // [esp+0h] [ebp-1Ch] int v3; // [esp+18h] [ebp-4h] v3 = sub_3236B90(a1); if ( !v3 ) return 70.0; if ( *(v3 + 272) ) v2 = *(v3 + 272); else v2 = 100; return v2; } Reversed function: float CPythonNonPlayer::GetMonsterHitRangeByVnum(DWORD raceVnum) const { const TMobTable * p = GetTable(raceVnum); if (!p) return 70.0f; if (p->hitRange) return p->hitRange; return 100.0f; } Best Regards Ken
×
×
  • 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.