Jump to content

Mali

Honorable Member
  • Posts

    919
  • Joined

  • Days Won

    887
  • Feedback

    100%

Everything posted by Mali

  1. int item_vnum = Stones[number(0, _countof(Stones))]; to: int item_vnum = Stones[number(0, _countof(Stones) - 1)]; item_manager.cpp
  2. PyObject* playerGetBeltSlotCount(PyObject* poSelf, PyObject* poArgs) { int iBeltGrade = 0; if (!PyTuple_GetInteger(poArgs, 0, &iBeltGrade)) return Py_BadArgument(); BYTE bSlotCount = 0, bPos = 0; while (bPos < c_Belt_Inventory_Slot_Count) if (CBeltInventoryHelper::IsAvailableCell(bPos++, iBeltGrade)) bSlotCount++; return Py_BuildValue("i", bSlotCount); } { "GetBeltSlotCount", playerGetBeltSlotCount, METH_VARARGS }, player.GetBeltSlotCount(item.GetValue(0)) PythonPlayerModule.cpp
  3. Hey, I made a little change. If you want to use item with limit times, don't change sockets. Let it be 0 (it will use item_proto's time)
  4. what? I don't care when they're there. I just said he could expand topic.
  5. You could expand the topic for locale_quest.txt and locale_quiz.txt keep it up, nice work
  6. # quest alternative check git repo
  7. As always there isn't any code. We don't have psychic abilities
  8. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) [Hidden Content]
  9. Minimap: Categories: #All(no type or subtype check) With Cheque System: Without Cheque System: Now shop opens directly:
  10. For who wants to do with src: Add this beautiful reserved codes: [Hidden Content] Result:
  11. "d:/ymir work/effect/etc/direction/direction_land2.mse"
  12. It's almost 6 years old stuff. It came with the 15.7 update. I know it's shared for free already. But It was all very bad and was using mysql for no reason. I did it for myself. Root side is from the leaked root file in 2018. Official servers uses mask types and subtypes. 90% do not use those types, including me. Maybe @xP3NG3Rxis using, I don't know. So I edited it for types and subtypes.(2014) Actually I finished. I'll just add few more types and subtypes soon. It's working in same cores. To use the LOOKING GLASS, you must be on the same map with the shop. It does not matter for TRADING GLASS either.
  13. like this? void CHARACTER::GiveRandomItemByType(BYTE bType) { if (!(bType > ITEM_NONE && bType <= ITEM_BELT)) // my last item type is belt return; if (bType == ITEM_SKILLBOOK) { GiveRandomSkillBook(); return; } const std::vector<TItemTable>& vItemTable = ITEM_MANAGER::instance().GetTable(); if (vItemTable.empty()) return; while (true) { const int iRandIdx = number(0, vItemTable.size() - 1); const TItemTable& table = vItemTable.at(iRandIdx); if (table.bType == bType) { AutoGiveItem(table.dwVnum); break; } } } char.h void GiveRandomItemByType(BYTE bType); USAGE: character->GiveRandomItemByType(ITEM_ARMOR); character->GiveRandomItemByType(ITEM_BELT);
  14. MapEventChar::const_iterator -> std::map<DWORD, DWORD>::const_iterator sorry I'm using another source and don't forget to add const keyword to function in header
  15. can you try? bool COXEventManager::CheckIpAddress(LPCHARACTER ch) const { BYTE bIPCount = 0; for (MapEventChar::const_iterator it = m_map_attender.begin(); it != m_map_attender.end(); ++it) { LPCHARACTER tch = CHARACTER_MANAGER::Instance().FindByPID(it->second); if (tch && tch->GetDesc() && !strcmp(ch->GetDesc()->GetHostName(), tch->GetDesc()->GetHostName())) bIPCount++; } const BYTE MaxPlayer = 2; return (bIPCount < MaxPlayer); } I can't open img so I write for old compiler xd sorry
  16. Thank you, it's working great You can add these two modules(EterPythonLib)
  17. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Now you can open shops directly. There is no need to adjust the coordinates when adding a new shop. Automatically adjusted according to the shop names.(remote_shop_names.txt) For new shop: Special thanks to @Tatsumaru for taskbar Icons :
  18. I want to say, for now is to restore your backups until you find the solution because your server is working now.
×
×
  • 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.