1. #include "stdafx.h"
  2. #include "PythonExchange.h"
  3. void CPythonExchange::SetSelfName(const char *name)
  4. {
  5. strncpy(m_self.name, name, CHARACTER_NAME_MAX_LEN);
  6. }
  7. void CPythonExchange::SetTargetName(const char *name)
  8. {
  9. strncpy(m_victim.name, name, CHARACTER_NAME_MAX_LEN);
  10. }
  11. char * CPythonExchange::GetNameFromSelf()
  12. {
  13. return m_self.name;
  14. }
  15. char * CPythonExchange::GetNameFromTarget()
  16. {
  17. return m_victim.name;
  18. }
  19. void CPythonExchange::SetElkToTarget(DWORD elk)
  20. {
  21. m_victim.elk = elk;
  22. }
  23. void CPythonExchange::SetElkToSelf(DWORD elk)
  24. {
  25. m_self.elk = elk;
  26. }
  27. DWORD CPythonExchange::GetElkFromTarget()
  28. {
  29. return m_victim.elk;
  30. }
  31. DWORD CPythonExchange::GetElkFromSelf()
  32. {
  33. return m_self.elk;
  34. }
  35. #ifdef ENABLE_NEW_EXCHANGE_WINDOW
  36. void CPythonExchange::SetSelfRace(DWORD race)
  37. {
  38. m_self.race = race;
  39. }
  40. void CPythonExchange::SetTargetRace(DWORD race)
  41. {
  42. m_victim.race = race;
  43. }
  44. DWORD CPythonExchange::GetRaceFromSelf()
  45. {
  46. return m_self.race;
  47. }
  48. DWORD CPythonExchange::GetRaceFromTarget()
  49. {
  50. return m_victim.race;
  51. }
  52. void CPythonExchange::SetSelfLevel(DWORD level)
  53. {
  54. m_self.level = level;
  55. }
  56. void CPythonExchange::SetTargetLevel(DWORD level)
  57. {
  58. m_victim.level = level;
  59. }
  60. DWORD CPythonExchange::GetLevelFromSelf()
  61. {
  62. return m_self.level;
  63. }
  64. DWORD CPythonExchange::GetLevelFromTarget()
  65. {
  66. return m_victim.level;
  67. }
  68. #endif
  69. void CPythonExchange::SetItemToTarget(DWORD pos, DWORD vnum, BYTE count)
  70. {
  71. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  72. return;
  73. m_victim.item_vnum[pos] = vnum;
  74. m_victim.item_count[pos] = count;
  75. }
  76. void CPythonExchange::SetItemToSelf(DWORD pos, DWORD vnum, BYTE count)
  77. {
  78. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  79. return;
  80. m_self.item_vnum[pos] = vnum;
  81. m_self.item_count[pos] = count;
  82. }
  83. void CPythonExchange::SetItemMetinSocketToTarget(int pos, int imetinpos, DWORD vnum)
  84. {
  85. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  86. return;
  87. m_victim.item_metin[pos][imetinpos] = vnum;
  88. }
  89. void CPythonExchange::SetItemMetinSocketToSelf(int pos, int imetinpos, DWORD vnum)
  90. {
  91. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  92. return;
  93. m_self.item_metin[pos][imetinpos] = vnum;
  94. }
  95. void CPythonExchange::SetItemAttributeToTarget(int pos, int iattrpos, BYTE byType, short sValue)
  96. {
  97. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  98. return;
  99. m_victim.item_attr[pos][iattrpos].bType = byType;
  100. m_victim.item_attr[pos][iattrpos].sValue = sValue;
  101. }
  102. void CPythonExchange::SetItemAttributeToSelf(int pos, int iattrpos, BYTE byType, short sValue)
  103. {
  104. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  105. return;
  106. m_self.item_attr[pos][iattrpos].bType = byType;
  107. m_self.item_attr[pos][iattrpos].sValue = sValue;
  108. }
  109. void CPythonExchange::DelItemOfTarget(BYTE pos)
  110. {
  111. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  112. return;
  113. m_victim.item_vnum[pos] = 0;
  114. m_victim.item_count[pos] = 0;
  115. }
  116. void CPythonExchange::DelItemOfSelf(BYTE pos)
  117. {
  118. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  119. return;
  120. m_self.item_vnum[pos] = 0;
  121. m_self.item_count[pos] = 0;
  122. }
  123. DWORD CPythonExchange::GetItemVnumFromTarget(BYTE pos)
  124. {
  125. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  126. return 0;
  127. return m_victim.item_vnum[pos];
  128. }
  129. DWORD CPythonExchange::GetItemVnumFromSelf(BYTE pos)
  130. {
  131. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  132. return 0;
  133. return m_self.item_vnum[pos];
  134. }
  135. BYTE CPythonExchange::GetItemCountFromTarget(BYTE pos)
  136. {
  137. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  138. return 0;
  139. return m_victim.item_count[pos];
  140. }
  141. BYTE CPythonExchange::GetItemCountFromSelf(BYTE pos)
  142. {
  143. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  144. return 0;
  145. return m_self.item_count[pos];
  146. }
  147. DWORD CPythonExchange::GetItemMetinSocketFromTarget(BYTE pos, int iMetinSocketPos)
  148. {
  149. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  150. return 0;
  151. return m_victim.item_metin[pos][iMetinSocketPos];
  152. }
  153. DWORD CPythonExchange::GetItemMetinSocketFromSelf(BYTE pos, int iMetinSocketPos)
  154. {
  155. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  156. return 0;
  157. return m_self.item_metin[pos][iMetinSocketPos];
  158. }
  159. void CPythonExchange::GetItemAttributeFromTarget(BYTE pos, int iAttrPos, BYTE * pbyType, short * psValue)
  160. {
  161. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  162. return;
  163. *pbyType = m_victim.item_attr[pos][iAttrPos].bType;
  164. *psValue = m_victim.item_attr[pos][iAttrPos].sValue;
  165. }
  166. void CPythonExchange::GetItemAttributeFromSelf(BYTE pos, int iAttrPos, BYTE * pbyType, short * psValue)
  167. {
  168. if (pos >= EXCHANGE_ITEM_MAX_NUM)
  169. return;
  170. *pbyType = m_self.item_attr[pos][iAttrPos].bType;
  171. *psValue = m_self.item_attr[pos][iAttrPos].sValue;
  172. }
  173. void CPythonExchange::SetAcceptToTarget(BYTE Accept)
  174. {
  175. m_victim.accept = Accept ? true : false;
  176. }
  177. void CPythonExchange::SetAcceptToSelf(BYTE Accept)
  178. {
  179. m_self.accept = Accept ? true : false;
  180. }
  181. bool CPythonExchange::GetAcceptFromTarget()
  182. {
  183. return m_victim.accept ? true : false;
  184. }
  185. bool CPythonExchange::GetAcceptFromSelf()
  186. {
  187. return m_self.accept ? true : false;
  188. }
  189. bool CPythonExchange::GetElkMode()
  190. {
  191. return m_elk_mode;
  192. }
  193. void CPythonExchange::SetElkMode(bool value)
  194. {
  195. m_elk_mode = value;
  196. }
  197. void CPythonExchange::Start()
  198. {
  199. m_isTrading = true;
  200. }
  201. void CPythonExchange::End()
  202. {
  203. m_isTrading = false;
  204. }
  205. bool CPythonExchange::isTrading()
  206. {
  207. return m_isTrading;
  208. }
  209. void CPythonExchange::Clear()
  210. {
  211. memset(&m_self, 0, sizeof(m_self));
  212. memset(&m_victim, 0, sizeof(m_victim));
  213. /*
  214. m_self.item_vnum[0] = 30;
  215. m_victim.item_vnum[0] = 30;
  216. m_victim.item_vnum[1] = 40;
  217. m_victim.item_vnum[2] = 50;
  218. */
  219. }
  220. CPythonExchange::CPythonExchange()
  221. {
  222. Clear();
  223. m_isTrading = false;
  224. m_elk_mode = false;
  225. // Clear로 옴겨놓으면 안됨.
  226. // trade_start 페킷이 오면 Clear를 실행하는데
  227. // m_elk_mode는 클리어 되선 안됨.;
  228. }
  229. CPythonExchange::~CPythonExchange()
  230. {
  231. }