1. ## ERİC BLOODAXE ##
  2. Game-Db Source/Server/db/src/ClientManagerBoot.cpp
  3. gir ve arat;
  4. /*if (!MirrorMobTableIntoDB())
  5. {
  6. sys_err("MirrorMobTableIntoDB FAILED");
  7. return false;
  8. }*/
  9. /*if (!MirrorItemTableIntoDB())
  10. {
  11. sys_err("MirrorItemTableIntoDB FAILED");
  12. return false;
  13. }*/
  14. değiştir;
  15. if (!MirrorMobTableIntoDB())
  16. {
  17. sys_err("MirrorMobTableIntoDB FAILED");
  18. return false;
  19. }
  20. if (!MirrorItemTableIntoDB())
  21. {
  22. sys_err("MirrorItemTableIntoDB FAILED");
  23. return false;
  24. }
  25. tekrar arat;
  26. bool CClientManager::InitializeMobTable()
  27. fonksiyonu komple değiştir;
  28. bool CClientManager::InitializeMobTable()
  29. {
  30. //================== ÇÔ¼ö ¼³¸í ==================//
  31. //1. ¿ä¾à : 'mob_proto.txt', 'mob_proto_test.txt', 'mob_names.txt' ÆÄÀÏÀ» Àаí,
  32. // (!)[mob_table] Å×ÀÌºí ¿ÀºêÁ§Æ®¸¦ »ı¼ºÇÑ´Ù. (ŸÀÔ : TMobTable)
  33. //2. ¼ø¼­
  34. // 1) 'mob_names.txt' ÆÄÀÏÀ» Àо (a)[localMap](vnum:name) ¸ÊÀ» ¸¸µç´Ù.
  35. // 2) 'mob_proto_test.txt'ÆÄÀϰú (a)[localMap] ¸ÊÀ¸·Î
  36. // (b)[test_map_mobTableByVnum](vnum:TMobTable) ¸ÊÀ» »ı¼ºÇÑ´Ù.
  37. // 3) 'mob_proto.txt' ÆÄÀϰú (a)[localMap] ¸ÊÀ¸·Î
  38. // (!)[mob_table] Å×À̺íÀ» ¸¸µç´Ù.
  39. // <Âü°í>
  40. // °¢ row µé Áß,
  41. // (b)[test_map_mobTableByVnum],(!)[mob_table] ¸ğµÎ¿¡ ÀÖ´Â row´Â
  42. // (b)[test_map_mobTableByVnum]ÀÇ °ÍÀ» »ç¿ëÇÑ´Ù.
  43. // 4) (b)[test_map_mobTableByVnum]ÀÇ rowÁß, (!)[mob_table]¿¡ ¾ø´Â °ÍÀ» Ãß°¡ÇÑ´Ù.
  44. //3. Å×½ºÆ®
  45. // 1)'mob_proto.txt' Á¤º¸°¡ mob_table¿¡ Àß µé¾î°¬´ÂÁö. -> ¿Ï·á
  46. // 2)'mob_names.txt' Á¤º¸°¡ mob_table¿¡ Àß µé¾î°¬´ÂÁö.
  47. // 3)'mob_proto_test.txt' ¿¡¼­ [°ãÄ¡´Â] Á¤º¸°¡ mob_table ¿¡ Àß µé¾î°¬´ÂÁö.
  48. // 4)'mob_proto_test.txt' ¿¡¼­ [»õ·Î¿î] Á¤º¸°¡ mob_table ¿¡ Àß µé¾î°¬´ÂÁö.
  49. // 5) (ÃÖÁ¾) °ÔÀÓ Å¬¶óÀÌ¾ğÆ®¿¡¼­ Á¦´ë·Î ÀÛµ¿ ÇÏ´ÂÁö.
  50. //_______________________________________________//
  51. //===============================================//
  52. // 1) 'mob_names.txt' ÆÄÀÏÀ» Àо (a)[localMap] ¸ÊÀ» ¸¸µç´Ù.
  53. //<(a)localMap ¸Ê »ı¼º>
  54. map<int,const char*> localMap;
  55. //bool isNameFile = true;
  56. //<ÆÄÀÏ Àбâ>
  57. cCsvTable nameData;
  58. if(!nameData.Load("mob_names.txt",'\t'))
  59. {
  60. fprintf(stderr, "Could not load mob_names.txt\n");
  61. } else {
  62. nameData.Next(); //¼³¸írow »ı·«.
  63. while(nameData.Next()) {
  64. localMap[atoi(nameData.AsStringByIndex(0))] = nameData.AsStringByIndex(1);
  65. }
  66. }
  67. //________________________________________________//
  68. cCsvTable data;
  69. if(!data.Load("mob_proto.txt",'\t'))
  70. {
  71. fprintf(stderr, "Could not load mob_proto.txt. Wrong file format?\n");
  72. return false;
  73. }
  74. data.Next(); //¸Ç À­ÁÙ Á¦¿Ü (¾ÆÀÌÅÛ Ä®·³À» ¼³¸íÇÏ´Â ºÎºĞ)
  75. //2.2 Å©±â¿¡ ¸Â°Ô mob_table »ı¼º
  76. if (!m_vec_mobTable.empty())
  77. {
  78. sys_log(0, "RELOAD: mob_proto");
  79. m_vec_mobTable.clear();
  80. }
  81. m_vec_mobTable.resize(data.m_File.GetRowCount()-1);
  82. memset(&m_vec_mobTable[0], 0, sizeof(TMobTable) * m_vec_mobTable.size());
  83. TMobTable * mob_table = &m_vec_mobTable[0];
  84. //2.3 µ¥ÀÌÅÍ Ã¤¿ì±â
  85. while (data.Next())
  86. {
  87. if (!Set_Proto_Mob_Table(mob_table, data, localMap))
  88. {
  89. fprintf(stderr, "Could not process entry.\n");
  90. }
  91. sys_log(1, "MOB #%-5d %-24s %-24s level: %-3u rank: %u empire: %d", mob_table->dwVnum, mob_table->szName, mob_table->szLocaleName, mob_table->bLevel, mob_table->bRank, mob_table->bEmpire);
  92. ++mob_table;
  93. }
  94. //_____________________________________________________//
  95. sort(m_vec_mobTable.begin(), m_vec_mobTable.end(), FCompareVnum());
  96. return true;
  97. }
  98. tekrar arat;
  99. bool CClientManager::InitializeItemTable()
  100. fonksiyonu komple değiştir ve derle;
  101. bool CClientManager::InitializeItemTable()
  102. {
  103. //================== ÇÔ¼ö ¼³¸í ==================//
  104. //1. ¿ä¾à : 'item_proto.txt', 'item_proto_test.txt', 'item_names.txt' ÆÄÀÏÀ» Àаí,
  105. // <item_table>(TItemTable), <m_map_itemTableByVnum> ¿ÀºêÁ§Æ®¸¦ »ı¼ºÇÑ´Ù.
  106. //2. ¼ø¼­
  107. // 1) 'item_names.txt' ÆÄÀÏÀ» Àо (a)[localMap](vnum:name) ¸ÊÀ» ¸¸µç´Ù.
  108. // 2) 'item_proto_text.txt'ÆÄÀϰú (a)[localMap] ¸ÊÀ¸·Î
  109. // (b)[test_map_itemTableByVnum](vnum:TItemTable) ¸ÊÀ» »ı¼ºÇÑ´Ù.
  110. // 3) 'item_proto.txt' ÆÄÀϰú (a)[localMap] ¸ÊÀ¸·Î
  111. // (!)[item_table], <m_map_itemTableByVnum>À» ¸¸µç´Ù.
  112. // <Âü°í>
  113. // °¢ row µé Áß,
  114. // (b)[test_map_itemTableByVnum],(!)[mob_table] ¸ğµÎ¿¡ ÀÖ´Â row´Â
  115. // (b)[test_map_itemTableByVnum]ÀÇ °ÍÀ» »ç¿ëÇÑ´Ù.
  116. // 4) (b)[test_map_itemTableByVnum]ÀÇ rowÁß, (!)[item_table]¿¡ ¾ø´Â °ÍÀ» Ãß°¡ÇÑ´Ù.
  117. //3. Å×½ºÆ®
  118. // 1)'item_proto.txt' Á¤º¸°¡ item_table¿¡ Àß µé¾î°¬´ÂÁö. -> ¿Ï·á
  119. // 2)'item_names.txt' Á¤º¸°¡ item_table¿¡ Àß µé¾î°¬´ÂÁö.
  120. // 3)'item_proto_test.txt' ¿¡¼­ [°ãÄ¡´Â] Á¤º¸°¡ item_table ¿¡ Àß µé¾î°¬´ÂÁö.
  121. // 4)'item_proto_test.txt' ¿¡¼­ [»õ·Î¿î] Á¤º¸°¡ item_table ¿¡ Àß µé¾î°¬´ÂÁö.
  122. // 5) (ÃÖÁ¾) °ÔÀÓ Å¬¶óÀÌ¾ğÆ®¿¡¼­ Á¦´ë·Î ÀÛµ¿ ÇÏ´ÂÁö.
  123. //_______________________________________________//
  124. //=================================================================================//
  125. // 1) 'item_names.txt' ÆÄÀÏÀ» Àо (a)[localMap](vnum:name) ¸ÊÀ» ¸¸µç´Ù.
  126. //=================================================================================//
  127. map<int,const char*> localMap;
  128. cCsvTable nameData;
  129. if(!nameData.Load("item_names.txt",'\t'))
  130. {
  131. fprintf(stderr, "Could not load item_names.txt.\n");
  132. } else {
  133. nameData.Next();
  134. while(nameData.Next()) {
  135. localMap[atoi(nameData.AsStringByIndex(0))] = nameData.AsStringByIndex(1);
  136. }
  137. }
  138. //_________________________________________________________________//
  139. //ÆÄÀÏ Àоî¿À±â.
  140. cCsvTable data;
  141. if(!data.Load("item_proto.txt",'\t'))
  142. {
  143. fprintf(stderr, "Could not load item_proto.txt. Wrong file format?\n");
  144. return false;
  145. }
  146. data.Next(); //¸Ç À­ÁÙ Á¦¿Ü (¾ÆÀÌÅÛ Ä®·³À» ¼³¸íÇÏ´Â ºÎºĞ)
  147. if (!m_vec_itemTable.empty())
  148. {
  149. sys_log(0, "RELOAD: item_proto");
  150. m_vec_itemTable.clear();
  151. m_map_itemTableByVnum.clear();
  152. }
  153. //data¸¦ ´Ù½Ã ùÁÙ·Î ¿Å±ä´Ù.(´Ù½Ã Àоî¿Â´Ù;;)
  154. data.Destroy();
  155. if(!data.Load("item_proto.txt",'\t'))
  156. {
  157. fprintf(stderr, "Could not load item_proto.txt. Wrong file format?\n");
  158. return false;
  159. }
  160. data.Next(); //¸Ç À­ÁÙ Á¦¿Ü (¾ÆÀÌÅÛ Ä®·³À» ¼³¸íÇÏ´Â ºÎºĞ)
  161. m_vec_itemTable.resize(data.m_File.GetRowCount() - 1);
  162. memset(&m_vec_itemTable[0], 0, sizeof(TItemTable) * m_vec_itemTable.size());
  163. TItemTable * item_table = &m_vec_itemTable[0];
  164. while (data.Next())
  165. {
  166. if (!Set_Proto_Item_Table(item_table, data, localMap))
  167. {
  168. fprintf(stderr, "Failed to load item_proto table.\n");
  169. }
  170. m_map_itemTableByVnum.insert(std::map<DWORD, TItemTable *>::value_type(item_table->dwVnum, item_table));
  171. ++item_table;
  172. }
  173. //_______________________________________________________________________//
  174. // QUEST_ITEM_PROTO_DISABLE
  175. // InitializeQuestItemTable();
  176. // END_OF_QUEST_ITEM_PROTO_DISABLE
  177. m_map_itemTableByVnum.clear();
  178. itertype(m_vec_itemTable) it = m_vec_itemTable.begin();
  179. while (it != m_vec_itemTable.end())
  180. {
  181. TItemTable * item_table = &(*(it++));
  182. 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",
  183. item_table->dwVnum,
  184. item_table->szName,
  185. item_table->szLocaleName,
  186. item_table->alValues[0],
  187. item_table->alValues[1],
  188. item_table->alValues[2],
  189. item_table->alValues[3],
  190. item_table->alValues[4],
  191. item_table->alValues[5],
  192. item_table->dwWearFlags,
  193. item_table->dwAntiFlags,
  194. item_table->dwImmuneFlag,
  195. item_table->dwRefinedVnum,
  196. item_table->wRefineSet,
  197. item_table->bAlterToMagicItemPct);
  198. m_map_itemTableByVnum.insert(std::map<DWORD, TItemTable *>::value_type(item_table->dwVnum, item_table));
  199. }
  200. sort(m_vec_itemTable.begin(), m_vec_itemTable.end(), FCompareVnum());
  201. return true;
  202. }
  203. ## ERİC BLOODAXE ##