Jump to content

Istny

Premium
  • Posts

    72
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Istny last won the day on March 30 2016

Istny had the most liked content!

About Istny

Informations

  • Gender
    Male

Recent Profile Visitors

3853 profile views

Istny's Achievements

Collaborator

Collaborator (7/16)

  • Reacting Well
  • Dedicated
  • First Post
  • Collaborator Rare
  • Conversation Starter

Recent Badges

93

Reputation

  1. Maybe your server don't have enough RAM to run 2 channels at once ?
  2. carray: 30ms map: 55ms unordered_map :39ms tested with array size of 1250 elements 1mln random access
  3. The problem: Mobs are using CHARACTER_POINT_INSTANT struct, which contains fixed size arrays for dragon soul, items etc. For every mob these arrays are allocating memory, but mobs obviously don't use items... The solution: Replace fixed size arrays with std::map or other data type From my own testing i saw over 70% memory usage reduction with special inventory system and optimized variables listed below: bItemGrid pItems pDSItems wDSItemGrid Below i am sharing example implementation in clean source for bItemGrid variable
  4. Cleaner, only downside is, if someone for unknow reason will have for example socket3 set to 0 and socket4 to 11 loop in CHARACTER::DoRefine will use value frome socket3 as material vnum which is 0. Summarazing don't do a mess and you are good to go ?
  5. Fix allow you to use vnum4 in refine_proto Explanation: By default refine materials are beign loaded until vnumx == 0, but if you assign item to the last socket, material_count will never be assigned. As a result material_count will remain 0, despite 5 material items being set. Adding simple additional check solves this problem Open db/ClientManagerBoot.cpp replace for (int i = 0; i < REFINE_MATERIAL_MAX_NUM; i++) { str_to_number(prt->materials[i].vnum, data[col++]); str_to_number(prt->materials[i].count, data[col++]); if (prt->materials[i].vnum == 0) { prt->material_count = i; break; } } with for (int i = 0; i < REFINE_MATERIAL_MAX_NUM; i++) { str_to_number(prt->materials[i].vnum, data[col++]); str_to_number(prt->materials[i].count, data[col++]); if (prt->materials[i].vnum == 0) { prt->material_count = i; break; } else if (i+1 == REFINE_MATERIAL_MAX_NUM) { prt->material_count = REFINE_MATERIAL_MAX_NUM; break; } } final result
  6. Graph shows revenue ONLY from metin2, you can go through webzen financial reports ans see how much money they make from games like MU Gameforge does not disclose how much money they make from each game, so we will never know how much money in total metin2 generates ?
  7. below graph shows how much webzen makes money of this "dead game" called metin2
  8. CCI * pkCCI = P2P_MANAGER::instance().Find(nickname); you can find how to use that in source by searching code above
  9. if you open solution in newer visual studio it will be converted to newer version, however there will be some errors during compilation, but they are easy to fix if you have knowlage of c++ xd
  10. i'm using v141 toolset without any problems
  11. There is no simple answer, on my server we are using packer written from scratch with new encryption method and other compression algorithms like lizard, lz4hc
  12. mayby you should learn first how to read gdb output
  13. broken server_attr
  14. probably you are running some queries without index you have to enable log_queries_not_using_indexes in my.cnf to see where is the problem
  15. From what i remember this issue is related to broken server_attr, core go down when player walk into broken part of the map
×
×
  • 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.