Jump to content

Morphe

Member
  • Posts

    211
  • Joined

  • Last visited

  • Days Won

    2
  • Feedback

    0%

Everything posted by Morphe

  1. The "Vegas System" is made by me.. and... it's not full. Here is the full tut, but is in Romanian, use Google Translate.
  2. 1. Your mob_proto has wrong format. 2. If you want to use APPLY_ATTBONUS_WOLFMAN you have to define this in launcher.
  3. You have to change all slot count from BYTE type to int type.There are many files to modified. Because BYTE is max 255, and you have over 255 slots. 255+ slots are bugged.
  4. If you found any problem, post here. I will help you. Server part: Archive password: morphe_just4metin.ro [Hidden Content]
  5. Compare my files with your files. Not replace this... Use Beyond Compare or WinMerge for this. Today i prepare server part.
  6. Try like this: static bool CanMoveIntoBeltInventory(LPITEM item) { bool canMove = false; if (item->GetType() == ITEM_WEAPON) { switch (item->GetSubType()) { case WEAPON_CLAW: canMove = true; break; } } else if (item->GetType() == ITEM_USE) { switch (item->GetSubType()) { case USE_POTION: case USE_POTION_NODELAY: case USE_ABILITY_UP: canMove = true; break; } } return canMove; }
  7. M2 Download Center Download Here ( Internal )
  8. Hi folks. Today i coded this interface and i want to share with you. Link to download this: [Hidden Content] Arhive password is: morphe PSD file: (Thanks to ShroZindeR) [Hidden Content] ShroZindeR deviantart: [Hidden Content] Image from interface in game:
  9. Morphe

    Save dogs

    We at "RAISE UR PAW" need the voices and paws of the world to be raised to help ban the YULIN DOG MEAT EATING FESTIVAL which is going to occur on June 21, 2015. Countless Canine Lives will be sacrificed in order to fulfill an inhumane tradition that has been permitted to occur for many years - and it is now time this horror is finally put to an end. This brutal "Festival" involves what some call savouring the "delights" of dog meat hotpot, lychees, and strong liquor -- which will increase the abduction of strays and pets and also increase the torturous & inhumane prisons of dog meat farms - places where man's best friends are raised for such purposes -- thousands of dogs will suffer, be butchered, beaten to death, skinned alive and eaten. Time is ticking and the massive killing of dogs will soon take place, we must get our voices united and raised not just to save the lives but save the hope in humanity - to be part of a compassionate world where we all come together to stand up and speak out for all innocent life, not just the life of humanity. If we turn away and ignore the cries/pleas of these babies, then we truly have turned away from being human"kind". Enter this link and sign the petition. https://www.change.org/p/president-of-the-people-s-republic-of-china-stop-the-yulin-dog-meat-eating-festival
  10. bool CExchange::CheckSpace() { static CGrid s_grid1(5, INVENTORY_MAX_NUM / 5 / 5); // inven page 1 9 Rows a 5 Columns static CGrid s_grid2(5, INVENTORY_MAX_NUM / 5 / 5); // inven page 2 9 Rows a 5 Columns static CGrid s_grid3(5, INVENTORY_MAX_NUM / 5 / 5); // inven page 3 9 Rows a 5 Columns static CGrid s_grid4(5, INVENTORY_MAX_NUM / 5 / 5); // inven page 4 9 Rows a 5 Columns static CGrid s_grid5(5, INVENTORY_MAX_NUM / 5 / 5); // inven page 5 9 Rows a 5 Columns s_grid1.Clear(); s_grid2.Clear(); s_grid3.Clear(); s_grid4.Clear(); s_grid5.Clear(); LPCHARACTER victim = GetCompany()->GetOwner(); LPITEM item; int i; const int perPageSlotCount = INVENTORY_MAX_NUM / 5; for (i = 0; i < INVENTORY_MAX_NUM; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; BYTE itemSize = item->GetSize(); if (i < perPageSlotCount) // Notice: This is adjusted for 4 Pages only! s_grid1.Put(i, 1, itemSize); else if (i < perPageSlotCount * 2) s_grid2.Put(i - perPageSlotCount, 1, itemSize); else if (i < perPageSlotCount * 3) s_grid3.Put(i - perPageSlotCount * 2, 1, itemSize); else if (i < perPageSlotCount * 3) s_grid4.Put(i - perPageSlotCount * 3, 1, itemSize); else s_grid5.Put(i - perPageSlotCount * 4, 1, itemSize); } static std::vector <WORD> s_vDSGrid(DRAGON_SOUL_INVENTORY_MAX_NUM); bool bDSInitialized = false; for (i = 0; i < EXCHANGE_ITEM_MAX_NUM; ++i) { if (!(item = m_apItems[i])) continue; BYTE itemSize = item->GetSize(); if (item->IsDragonSoul()) { if (!victim->DragonSoul_IsQualified()) return false; if (!bDSInitialized) { bDSInitialized = true; victim->CopyDragonSoulItemGrid(s_vDSGrid); } bool bExistEmptySpace = false; WORD wBasePos = DSManager::instance().GetBasePosition(item); if (wBasePos >= DRAGON_SOUL_INVENTORY_MAX_NUM) return false; for (int i = 0; i < DRAGON_SOUL_BOX_SIZE; i++) { WORD wPos = wBasePos + i; if (0 == s_vDSGrid[wBasePos]) { bool bEmpty = true; for (int j = 1; j < item->GetSize(); j++) { if (s_vDSGrid[wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM]) { bEmpty = false; break; } } if (bEmpty) { for (int j = 0; j < item->GetSize(); j++) { s_vDSGrid[wPos + j * DRAGON_SOUL_BOX_COLUMN_NUM] = wPos + 1; } bExistEmptySpace = true; break; } } if (bExistEmptySpace) break; } if (!bExistEmptySpace) return false; } else { int iPos = s_grid1.FindBlank(1, itemSize); if (iPos >= 0) { s_grid1.Put(iPos, 1, itemSize); continue; } iPos = s_grid2.FindBlank(1, itemSize); if (iPos >= 0) { s_grid2.Put(iPos, 1, itemSize); continue; } iPos = s_grid3.FindBlank(1, itemSize); if (iPos >= 0) { s_grid3.Put(iPos, 1, itemSize); continue; } iPos = s_grid4.FindBlank(1, itemSize); if (iPos >= 0) { s_grid4.Put(iPos, 1, itemSize); continue; } iPos = s_grid5.FindBlank(1, itemSize); if (iPos >= 0) { s_grid5.Put(iPos, 1, itemSize); continue; } return false; // No space left in inventory } } return true; }
  11. Put #include "fstream" at the top. After include stdafx.h
  12. this if (!exp_table_open.is_open()) sys_err("Error:Unable to read exp table/Unable to find it") return 0; to this: if (!exp_table_open.is_open()) { sys_err("Error:Unable to read exp table/Unable to find it") return 0; }
  13. g_stServiceName isn't declared. Do this: std::ifstream exp_table_open("%s/exptable.txt",LocaleService_GetBasePath().c_str());
  14. Is more recommended by Source than by Quest.
  15. Test this: bool CAN_ENTER_ZONE(const LPCHARACTER& ch, int map_index) { switch (map_index) { case 301: case 302: case 303: case 304: case 314: case 200: if (ch->GetLevel() < 90) return false; break; case 218: if (ch->GetLevel() < 75) return false; break; } return true; } [Hidden Content]
  16. In char.cpp, search for: bool CAN_ENTER_ZONE And in switch (map_index) Add case 314 with return false. Like this: bool CAN_ENTER_ZONE(const LPCHARACTER& ch, int map_index) { switch (map_index) { case 301: case 302: case 303: case 304: case 314: if (ch->GetLevel() < 90) return false; } return true; }
  17. UserInterface.cpp #ifdef _DEBUG OpenConsoleWindow(); OpenLogFile(true); // true == uses syserr.txt and log.txt #else OpenLogFile(false); // false == uses syserr.txt only #endif
  18. In finnaly, looks and works good. [Hidden Content]
×
×
  • 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.