Jump to content

xP3NG3Rx

Honorable Member
  • Posts

    839
  • Joined

  • Days Won

    393
  • Feedback

    100%

Everything posted by xP3NG3Rx

  1. M2 Download Center Download Here ( Internal ) Hi, developers! Before you start, create a backup from your source files immediately! Today I'm gonna share with you my last work. I have read every informations from the official binary from beta(metin2client_r11185) and r7071. It was not an easy task to understand functions but successed. I will not write down the implementation step by step, but I wrote some informations into the files what you should to do to implement the system. If you do not understand the steps I put original(from dev branch) and modified files into the archive to compare the original and the changed files with notepad++ or something else comparer tool to see the changes. - There are some files which optional changes to show the mob-aiflag on those monsters which are not aggressive but summoned by aggressive with "/ma" command. - There was a little problem with Python 2.7.3 therefore I split asunder the gui-script. And be careful, the main script is using True and False variables. - You can disable the whole system in common/service.h and UserInterface/Locale_inc.h with undefined or with commented macro. I hope everything are understandable and I did not miss something from the release, and sorry for my bad english. Special thanks to TheSLZ for test the implementation. And last but not least here is the result: Download - Mega.nz
  2. Yes, but those files already published by plechito and Raicon in this thread at page 10.
  3. Now we were talking about weapon costumes only (metin2_patch_new_halloween_weapon)
  4. Yes, the models and texture released already on elitepvpers.com but the thread already deleted.. [Hidden Content] Anyway, when I downloaded it, I imported to my account too, here is the link: [Hidden Content] [Hidden Content]
  5. This is not compatible with long long, but you should do this way: case SHOP_SUBHEADER_GC_UPDATE_PRICE: PyObject *args = PyTuple_New(1); PyTuple_SetItem(args, 0, PyLong_FromLongLong(*(long long *)&vecBuffer[0])); PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "SetShopSellingPrice", args); As here, this is not useful with long long: PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "OnPickMoney", Py_BuildValue("(i)", (int)PointChange.amount)); Replace with: PyObject *args = PyTuple_New(1); PyTuple_SetItem(args, 0, PyLong_FromLongLong(PointChange.amount)); PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "OnPickMoney", args);
  6. Here it is, but I did not test! Mega.nz
  7. Maybe if I'm implemented it, now I've done the switchable monster informations marking (lv+aiflag) The quiver system is complex a little bit, and I'm not a fan of quiver . Anyway there is on my TODO list.
  8. I really love this music, I sleep & wake with this. Lost Frequencies feat. Janieck Devy - Reality
  9. effect.RegisterIndexedFlyData(effect.FLY_SKILL_MUYEONG, effect.INDEX_FLY_TYPE_AUTO_FIRE, "d:/ymir work/pc/sura/effect/muyeong_fly.msf") ## ą«żµÁř if app.ENABLE_QUIVER_SYSTEM: effect.RegisterIndexedFlyData(effect.FLY_QUIVER_ATTACK_NORMAL, effect.INDEX_FLY_TYPE_NORMAL, "d:/ymir work/pc/assassin/effect/arrow_02.msf") You can find in metin2_patch_etc. [Hidden Content]
  10. If you do not want to see that "seems hacker" message in the syslog, yes. Image
  11. Server\game\src\shop.cpp > "int CShop::Buy(LPCHARACTER ch, BYTE pos)" Search and replace this: if (IsPCShop()) { if (!pkSelectedItem) { sys_log(0, "Shop::Buy : Critical: This user seems to be a hacker : invalid pcshop item : BuyerPID:%d SellerPID:%d", ch->GetPlayerID(), m_pkPC->GetPlayerID()); return false; } if ((pkSelectedItem->GetOwner() != m_pkPC)) { sys_log(0, "Shop::Buy : Critical: This user seems to be a hacker : invalid pcshop item : BuyerPID:%d SellerPID:%d", ch->GetPlayerID(), m_pkPC->GetPlayerID()); return false; } } With this: if (IsPCShop()) { if (!pkSelectedItem) { sys_log(0, "Shop::Buy1 : Critical: This user seems to be a hacker : invalid pcshop item : BuyerPID:%d SellerPID:%d", ch->GetPlayerID(), m_pkPC->GetPlayerID()); return SHOP_SUBHEADER_GC_SOLDOUT; } if ((pkSelectedItem->GetOwner() != m_pkPC)) { sys_log(0, "Shop::Buy2 : Critical: This user seems to be a hacker : invalid pcshop item : BuyerPID:%d SellerPID:%d", ch->GetPlayerID(), m_pkPC->GetPlayerID()); return SHOP_SUBHEADER_GC_SOLDOUT; } } You could remove the sys_log about hacker thing because it not necessary.
  12. Paste your item proto, only the two costume scrolls.
  13. There is the right place, but the client part is wrong, it does not send the packet to use item on item because ignore it. As you can see on the picture it cannot handle the scroll as usable item on another item.
  14. Here is a diff, check with your uiInventory.py file. [Hidden Content]
  15. With this will work properly. function say_title_center(msg,r,g,b) local _color if (r and g and b) == nil then _color = color256(255, 230, 186) else _color = color256(r, g, b) end raw_script(string.format("[TEXT_HORIZONTAL_ALIGN_CENTER]%s%s%s[/TEXT_HORIZONTAL_ALIGN_CENTER][ENTER]", _color, msg, color256(196, 196, 196))) end
  16. Hmm, yes, I forgot the GameLib> ItemData.cpp, sorry and I'll edit the download with this: const char* CItemData::GetUseTypeString() const { if (GetType() != CItemData::ITEM_TYPE_USE) return "NOT_USE_TYPE"; switch (GetSubType()) { case USE_TUNING: return DEF_STR(USE_TUNING); case USE_DETACHMENT: return DEF_STR(USE_DETACHMENT); case USE_CLEAN_SOCKET: return DEF_STR(USE_CLEAN_SOCKET); case USE_CHANGE_ATTRIBUTE: return DEF_STR(USE_CHANGE_ATTRIBUTE); case USE_ADD_ATTRIBUTE: return DEF_STR(USE_ADD_ATTRIBUTE); case USE_ADD_ATTRIBUTE2: return DEF_STR(USE_ADD_ATTRIBUTE2); case USE_ADD_ACCESSORY_SOCKET: return DEF_STR(USE_ADD_ACCESSORY_SOCKET); case USE_PUT_INTO_ACCESSORY_SOCKET: return DEF_STR(USE_PUT_INTO_ACCESSORY_SOCKET); case USE_PUT_INTO_BELT_SOCKET: return DEF_STR(USE_PUT_INTO_BELT_SOCKET); case USE_PUT_INTO_RING_SOCKET: return DEF_STR(USE_PUT_INTO_RING_SOCKET); case USE_CHANGE_COSTUME_ATTR: return DEF_STR(USE_CHANGE_COSTUME_ATTR); case USE_RESET_COSTUME_ATTR: return DEF_STR(USE_RESET_COSTUME_ATTR); } return "USE_UNKNOWN_TYPE"; }
  17. @alin2894: What do you mean under "not work"? Could you explani it, please? What happens when you put the reset to an item? - Just because me works properly.
  18. You can align the lines to center with this script from 2008(bin_r23166 I have no prior bin :3): raw_script("[TEXT_HORIZONTAL_ALIGN_CENTER]") Just the reset function is unimplemented in the original src. I'm thinking for this: raw_script("[/TEXT_HORIZONTAL_ALIGN_CENTER]")
  19. #nosupport #noreply #nopm #doityourself Here is mine with new use subtypes, Official like: Mega.nz #Edit: I will not edit the download but here is a little fix, about ymir's fail: Search these lines in uiInventory.py: if player.GetItemAttribute(dstSlotPos, i) != 0: And replace with: if player.GetItemAttribute(dstSlotPos, i)[0] != 0: Why? Easy, because the player.GetItemAttribute give back 2 values as always in standard case (0, 0) which is a tuple, the comparison is return true every times.
  20. Forget the release mode, use DEBUG or DISTRIBUTE only. The source was written for these modes, I mean: #if(n)def _DEBUG #if(n)def _DISTRIBUTE
  21. It is a good idea, thank you. I made for different empires, npc/gm, pvp mode and for party . The pvp mode is already exists in the client.
  22. Those wrong animations are removed from the client, but those were in the patch_easter1 pack. d:\ymir work\pc2\sura\horse\wait.gr2 d:\ymir work\pc2\sura\horse\wait_1.gr2 d:\ymir work\pc2\sura\horse\wait_2.gr2 Hihihi :D
×
×
  • 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.