1. // Arat
  2. #include "log.h"
  3. // Altına Ekle
  4. #ifdef ENABLE_SUPPORT_SYSTEM
  5. #include "SupportSystem.h"
  6. #endif
  7. // Arat
  8. ACMD(do_in_game_mall)
  9. // Altına Ekle
  10. ACMD(do_support_system)
  11. {
  12. char arg1[256];
  13. one_argument(argument, arg1, sizeof(arg1));
  14. if (!*arg1)
  15. return;
  16. DWORD items = 0;
  17. str_to_number(items, arg1);
  18. if (ch->GetSupportSystem()->IsActiveSupport())
  19. {
  20. CSupportSystem* supportSystem = ch->GetSupportSystem();
  21. for (int i = 0; i < INVENTORY_MAX_NUM; i++)
  22. {
  23. LPITEM item = ch->GetInventoryItem(i);
  24. LPITEM pSummonItem = ITEM_MANAGER::instance().FindByVID(ch->GetSupportSystem()->GetActiveSupport()->GetSummonItemVID());
  25. if (item != NULL)
  26. if (item->GetVnum() == items)
  27. {
  28. if (item->GetType() == ITEM_COSTUME || item->GetType() == ITEM_ARMOR)
  29. {
  30. if (item->GetAntiFlag() & ITEM_ANTIFLAG_SHAMAN)
  31. {
  32. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> sadece şaman zırhı giydirebilirsin..");
  33. return;
  34. }
  35. if (item->IsExchanging())
  36. {
  37. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> ticaret yaparken bu işlemi yapamazsın");
  38. return;
  39. }
  40. if(item->GetSubType() == COSTUME_BODY)
  41. {
  42. item->ClearAttribute();
  43. pSummonItem->SetSocket(1,item->GetVnum());
  44. ch->ChatPacket(CHAT_TYPE_COMMAND, "SupportArmor %u", item->GetVnum());
  45. DBManager::instance().DirectQuery("UPDATE player.new_support SET armor = '%u' WHERE id = '%d'", item->GetVnum(), pSummonItem->GetID());
  46. ch->UpdatePacket();
  47. item->RemoveFromCharacter();
  48. break;
  49. }
  50. else
  51. {
  52. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> Bu işlemi yapamazsın");
  53. return;
  54. }
  55. }
  56. }
  57. }
  58. ch->GetSupportSystem()->GetActiveSupport()->RefreshCostume();
  59. }
  60. else
  61. {
  62. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> Bu işlemi kullanabilmek için yardımcı şaman mühürü gerekiyor.");
  63. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> eğer şaman mühürü varsa lütfen şamanı çağırın.");
  64. }
  65. }
  66. ACMD(do_support_system_w)
  67. {
  68. char arg1[256];
  69. one_argument(argument, arg1, sizeof(arg1));
  70. if (!*arg1)
  71. return;
  72. DWORD items = 0;
  73. str_to_number(items, arg1);
  74. if (ch->GetSupportSystem()->IsActiveSupport())
  75. {
  76. CSupportSystem* supportSystem = ch->GetSupportSystem();
  77. for (int i = 0; i < INVENTORY_MAX_NUM; i++)
  78. {
  79. LPITEM item = ch->GetInventoryItem(i);
  80. LPITEM pSummonItem = ITEM_MANAGER::instance().FindByVID(ch->GetSupportSystem()->GetActiveSupport()->GetSummonItemVID());
  81. if (item != NULL)
  82. if (item->GetVnum() == items)
  83. {
  84. if (item->GetType() == ITEM_WEAPON)
  85. {
  86. if (item->IsExchanging())
  87. {
  88. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> ticaret yaparken bu işlemi yapamazsın");
  89. return;
  90. }
  91. if (item->GetSubType() == WEAPON_FAN || item->GetSubType() == WEAPON_BELL)
  92. {
  93. item->ClearAttribute();
  94. pSummonItem->SetForceAttribute(3, 3, item->GetVnum());
  95. ch->ChatPacket(CHAT_TYPE_COMMAND, "SupportWeapon %u", item->GetVnum());
  96. DBManager::instance().DirectQuery("UPDATE player.new_support SET weapon = '%u' WHERE id = '%d'", item->GetVnum(), pSummonItem->GetID());
  97. ch->UpdatePacket();
  98. item->RemoveFromCharacter();
  99. break;
  100. }
  101. else
  102. {
  103. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> Bu işlemi yapamazsın");
  104. return;
  105. }
  106. }
  107. }
  108. }
  109. ch->GetSupportSystem()->GetActiveSupport()->RefreshCostume();
  110. }
  111. else
  112. {
  113. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> Bu işlemi kullanabilmek için yardımcı şaman mühürü gerekiyor.");
  114. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> eğer şaman mühürü varsa lütfen şamanı çağırın.");
  115. }
  116. }
  117. ACMD(do_support_system_d)
  118. {
  119. char arg1[256];
  120. one_argument(argument, arg1, sizeof(arg1));
  121. if (!*arg1)
  122. return;
  123. DWORD items = 0;
  124. str_to_number(items, arg1);
  125. if (ch->GetSupportSystem()->IsActiveSupport())
  126. {
  127. CSupportSystem* supportSystem = ch->GetSupportSystem();
  128. for (int i = 0; i < INVENTORY_MAX_NUM; i++)
  129. {
  130. LPITEM item = ch->GetInventoryItem(i);
  131. LPITEM pSummonItem = ITEM_MANAGER::instance().FindByVID(ch->GetSupportSystem()->GetActiveSupport()->GetSummonItemVID());
  132. if (item != NULL)
  133. if (item->GetVnum() == items)
  134. {
  135. if (item->GetType() == ITEM_COSTUME)
  136. {
  137. if (item->IsExchanging())
  138. {
  139. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> ticaret yaparken bu işlemi yapamazsın");
  140. return;
  141. }
  142. if (item->GetSubType() == COSTUME_HAIR)
  143. {
  144. item->ClearAttribute();
  145. pSummonItem->SetSocket(2,item->GetValue(3));
  146. ch->ChatPacket(CHAT_TYPE_COMMAND, "SupportHair %u", item->GetVnum());
  147. DBManager::instance().DirectQuery("UPDATE player.new_support SET hair = '%u', hairvnum = '%u' WHERE id = '%d'", item->GetValue(3), item->GetVnum(), pSummonItem->GetID());
  148. ch->UpdatePacket();
  149. item->RemoveFromCharacter();
  150. break;
  151. }
  152. else
  153. {
  154. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> Bu işlemi yapamazsın");
  155. return;
  156. }
  157. }
  158. }
  159. }
  160. ch->GetSupportSystem()->GetActiveSupport()->RefreshCostume();
  161. }
  162. else
  163. {
  164. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> Bu işlemi kullanabilmek için yardımcı şaman mühürü gerekiyor.");
  165. ch->ChatPacket(CHAT_TYPE_INFO, "<Sistem> eğer şaman mühürü varsa lütfen şamanı çağırın.");
  166. }
  167. }