Jump to content
  • Create New...


  • Posts

  • Joined

  • Last visited

  • Days Won


Abel(Tiger) last won the day on July 14 2018

Abel(Tiger) had the most liked content!


About Abel(Tiger)

  • Birthday 04/09/1998


  • Nationality
  • Country
  • Gender

Social Networks

  • Discord
    Mr. Tiger#1267

Recent Profile Visitors

2,291 profile views

Abel(Tiger)'s Achievements


Collaborator (7/14)

  • Dedicated Rare
  • Reacting Well
  • Very Popular Rare
  • First Post
  • Collaborator

Recent Badges




Community Answers

  1. If I'm not mistaken the exchange info is in the leaked rubinum source. The trade chat is easy to made.
  2. Those ~5px are for the shadows if I'm not mistaken. Also the ideea made by Ymir to open the client in two diferent position is stupid. I consider opening the windowed client on the center it's the best solution: if (Windowed) { m_isWindowed = true; RECT rc; GetClientRect(&rc); int windowWidth = rc.right - rc.left; int windowHeight = (rc.bottom - rc.top); // 80 is the gap for the taskbar, you can increase it CMSApplication::SetPosition((GetScreenWidth() - windowWidth) / 2, (GetScreenHeight() - windowHeight - 80) / 2); } else { m_isWindowed = false; SetPosition(0, 0); }
  3. From what I know you can't set two counters on the same quest. Official server has some quests where you need to kill multiple monsters but the counter is set when you kill one of the monsters. Example: you kill Wild Dog and it will apear wild dog counter, you kill hungry wild dog and it will apear the counter for that one.
  4. Did you try to increase this char list ?
  5. I think it's a compiling problem, not a source problem (I had a similar problem in the past) so try these things: 1. Don't compile with -j flag when you move to production 2. Try downgrade c++2a to c++14 or c++11 3. If 1 and 2 don't work try to upgrade clang to version 10 (I think you use 9)
  6. What compiler do you use for compiling the db, what freebsd for compiling and what freebsd for runing, also do you compile with -j ?
  7. That variable it's always 1 for the mall window, my advice is to compare all the code from function CClientManager::RESULT_SAFEBOX_LOAD with a clasic one and solve the bug with the addresses I told you about.
  8. For the mall the grid is placed on the db, check ClientManager.cpp bellow this line: CGrid grid(5, MAX(1, pi->pSafebox->bSize) * 9); Also try this (a common bug in metin2 source): In ClientManagerBoot.cpp search: sort(m_vec_itemTable.begin(), m_vec_itemTable.end(), FCompareVnum()); And move it before the iterator is initialized like this: m_map_itemTableByVnum.clear(); // Now it's here sort(m_vec_itemTable.begin(), m_vec_itemTable.end(), FCompareVnum()); itertype(m_vec_itemTable) it = m_vec_itemTable.begin(); while (it != m_vec_itemTable.end()) { TItemTable * item_table = &(*(it++)); sys_log(1, "ITEM: #%-5lu %-24s %-24s VAL: %ld %ld %ld %ld %ld %ld WEAR %lu ANTI %lu IMMUNE %lu REFINE %lu REFINE_SET %u MAGIC_PCT %u", item_table->dwVnum, item_table->szName, item_table->szLocaleName, item_table->alValues[0], item_table->alValues[1], item_table->alValues[2], item_table->alValues[3], item_table->alValues[4], item_table->alValues[5], item_table->dwWearFlags, item_table->dwAntiFlags, item_table->dwImmuneFlag, item_table->dwRefinedVnum, item_table->wRefineSet, item_table->bAlterToMagicItemPct); // Also you can insert these values after the sort but because we // already looping through the list of items once (for the syslog), it's better to // move the sort function above (the complexity is half this way) m_map_itemTableByVnum.insert(std::map<DWORD, TItemTable *>::value_type(item_table->dwVnum, item_table)); } // It was here return true;
  9. Or you can call the accept button event like this: def OnIMEReturn(self): if self.acceptButton: self.acceptButton.CallEvent() return True
  10. Right, uiPrivateShopBuilder.py -> class PrivateShopAdvertisementBoard(ui.ThinBoard): add these:
  11. The code you posted can be explained like this: When I get a sash (mostly with /item command) I will get (1,2,3 or 4) absortion based on sash type (wtf???) and with that discrete_distribution I have a change to get +abs. Example: I have a small change to get a type 1 sash with 6 absortion Please don't copy code from other files if you don't know what it does. Rubinum used discrete_distribution when you combine two level 4 sashes for the +abs PS: the code you posted is from item.cpp not char_item.cpp
  12. Take this: [Hidden Content] Compare the folders and copy the changes in your root source. PS: you might already have interface binded
  13. Yes. Save them in a file inside the folder of the client and hash them somehow with a unique identifier (like mac address, or something like that) so only that computer can acces them in case of stolen.
  14. It get's random stuff from the memory but because it's a gm command don't stress about it. But if you really want that gone try a lenght check: ACMD(do_notice) { if(strlen(argument) < 2) return; BroadcastNotice(argument + 1); }
  15. ACMD(do_notice) { BroadcastNotice(argument + 1); } Be careful though, that +1 should not be done without a size check.

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.