StatusWnd.cpp
上传用户:cydong117
上传日期:2009-11-10
资源大小:638k
文件大小:44k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. /******************************************************************************************************************
  2.                                                                                                                    
  3. 葛碘疙:
  4. 累己磊:
  5. 累己老:
  6. [老磊][荐沥磊] : 荐沥 郴侩
  7.                                                                                                                    
  8. *******************************************************************************************************************/
  9. #include "StdAfx.h"
  10. /******************************************************************************************************************
  11. CStatusWnd Class
  12. *******************************************************************************************************************/
  13. /******************************************************************************************************************
  14. 窃荐疙 : CStatusWnd::CStatusWnd()
  15. 累己磊 : 
  16. 累己老 : 
  17. 格利   : 
  18. 免仿   : 
  19. [老磊][荐沥磊] : 荐沥郴侩
  20. *******************************************************************************************************************/
  21. CStatusWnd::CStatusWnd()
  22. {
  23. Init();
  24. }
  25. /******************************************************************************************************************
  26. 窃荐疙 : CStatusWnd::~CStatusWnd()
  27. 累己磊 : 
  28. 累己老 : 
  29. 格利   : 
  30. 免仿   : 
  31. [老磊][荐沥磊] : 荐沥郴侩
  32. *******************************************************************************************************************/
  33. CStatusWnd::~CStatusWnd()
  34. {
  35. Destory();
  36. }
  37. VOID CStatusWnd::Init()
  38. {
  39. INT nCnt;
  40. CGameWnd::Init();
  41. m_bType = _TYPE_EQUIP;
  42. m_nStartLineNum = 0;
  43. m_pstMyMagic = NULL;
  44. m_bMyMagicCnt = 0;
  45. ZeroMemory(&m_bMagicIdxTable, _MAX_MAGIC_SKILL);
  46. ZeroMemory(&m_rcCell, sizeof(RECT)*_EQUIP_MAX_CELL);
  47. ZeroMemory(&m_rcMagicCell, sizeof(RECT)*_MAGIC_MAX_CELL);
  48. ZeroMemory(&m_stEquipItem, sizeof(ITEMSET)*_EQUIP_MAX_CELL);
  49. ZeroMemory(&m_stTakeOnItemSet, sizeof(CItem));
  50. ZeroMemory(&m_szEquipItemIdx, sizeof(m_szEquipItemIdx));
  51. for ( nCnt  = 0; nCnt < _MAX_STAUTS_BTN; nCnt ++ )
  52. {
  53. m_xStatusBtn[nCnt].Init();
  54. }
  55. for ( nCnt  = 0; nCnt < 2; nCnt ++ )
  56. {
  57. m_xMagicScrlBtn[nCnt].Init();
  58. }
  59. }
  60. VOID CStatusWnd::Destory()
  61. {
  62. CGameWnd::Destroy();
  63. SAFE_DELETE(m_pstMyMagic);
  64. Init();
  65. }
  66. /******************************************************************************************************************
  67. 窃荐疙 : CStatusWnd::CreateStatusWnd()
  68. 累己磊 : 
  69. 累己老 : 
  70. 格利   : 
  71. 涝仿   : INT nID
  72.          CWHWilImageData* pxWndImage
  73.          INT nFrameImgIdx
  74.          INT nStartX
  75.          INT nStartY
  76.          INT nWidth
  77.          INT nHeight
  78.          BOOL bCanMove
  79. 免仿   : VOID 
  80. [老磊][荐沥磊] : 荐沥郴侩
  81. *******************************************************************************************************************/
  82. VOID CStatusWnd::CreateStatusWnd(INT nID, CWHWilImageData* pxWndImage, INT nFrameImgIdx, INT nStartX, INT nStartY, INT nWidth, INT nHeight, BOOL bCanMove)
  83. {
  84. CreateGameWnd(nID, pxWndImage, nFrameImgIdx, bCanMove, nStartX, nStartY, nWidth, nHeight);
  85. // 滚瓢檬扁拳.
  86. m_xStatusBtn[_BTN_ID_STATUSCLOSE].CreateGameBtn(pxWndImage,  214,  215, nStartX+222, nStartY+298);
  87. m_xStatusBtn[_BTN_ID_STATUS].CreateGameBtn(pxWndImage,  212,  213, nStartX+_BTN_ID_STATUS_X, nStartY+_BTN_ID_STATUS_Y);
  88. m_xStatusBtn[_BTN_ID_STATUSMAGIC].CreateGameBtn(pxWndImage,  99, 100, nStartX+_BTN_ID_STATUSMAGIC_X, nStartY+_BTN_ID_STATUSMAGIC_Y);
  89. // 厘馒芒 檬扁拳.
  90. SetRect(&m_rcCell[_U_NECKLACE], 187,  70, 190+_INVENTORY_CELL_WIDTH,  70+_INVENTORY_CELL_HEIGHT);
  91. SetRect(&m_rcCell[_U_RIGHTHAND], 37, 264,  37+_INVENTORY_CELL_WIDTH, 264+_INVENTORY_CELL_HEIGHT);
  92. SetRect(&m_rcCell[_U_CHARM], 74, 264, 74+_INVENTORY_CELL_WIDTH, 264+_INVENTORY_CELL_HEIGHT);
  93. SetRect(&m_rcCell[_U_ARMRINGL],  37, 186,  37+_INVENTORY_CELL_WIDTH, 186+_INVENTORY_CELL_HEIGHT);
  94. SetRect(&m_rcCell[_U_ARMRINGR], 185, 186, 185+_INVENTORY_CELL_WIDTH, 186+_INVENTORY_CELL_HEIGHT);
  95. SetRect(&m_rcCell[_U_RINGL], 37, 227, 37+_INVENTORY_CELL_WIDTH, 227+_INVENTORY_CELL_HEIGHT);
  96. SetRect(&m_rcCell[_U_RINGR],   185, 227,185+_INVENTORY_CELL_WIDTH, 227+_INVENTORY_CELL_HEIGHT);
  97. SetRect(&m_rcCell[_U_HELMET], 104,  71, 143,  104);
  98. SetRect(&m_rcCell[_U_DRESS], 96,  114, 146,  204);
  99. SetRect(&m_rcCell[_U_WEAPON], 48,  70,   91,  154);
  100. // 付过滚瓢檬扁拳.
  101. m_xMagicScrlBtn[0].CreateGameBtn(pxWndImage, 74, 75, nStartX+232, nStartY+147);
  102. m_xMagicScrlBtn[1].CreateGameBtn(pxWndImage, 74, 75, nStartX+232, nStartY+253);
  103. // 付过芒檬扁拳.
  104. SetRect(&m_rcMagicCell[0], 39,  77, 74, 112);
  105. SetRect(&m_rcMagicCell[1], 39, 115, 74, 149);
  106. SetRect(&m_rcMagicCell[2], 39, 152, 74, 186);
  107. SetRect(&m_rcMagicCell[3], 39, 188, 74, 223);
  108. SetRect(&m_rcMagicCell[4], 39, 225, 74, 260);
  109. // 付过 函荐 檬扁拳.
  110. m_pstMyMagic  = NULL;
  111. m_bMyMagicCnt = 0;
  112. }
  113. /******************************************************************************************************************
  114. 窃荐疙 : CStatusWnd::ShowStatusWnd()
  115. 累己磊 : 
  116. 累己老 : 
  117. 格利   : 
  118. 免仿   : VOID 
  119. [老磊][荐沥磊] : 荐沥郴侩
  120. *******************************************************************************************************************/
  121. VOID CStatusWnd::ShowStatusWnd()
  122. {
  123. RECT rcID;
  124. switch ( m_bType )
  125. {
  126. case _TYPE_EQUIP:
  127. ShowCharEquipWnd();
  128. SetRect(&rcID, m_rcWnd.left+81, m_rcWnd.top+38, m_rcWnd.left+173, m_rcWnd.top+50);
  129. g_xMainWnd.PutsHan(NULL, rcID, RGB(255, 250, 180), RGB(0, 0, 0), g_xGameProc.m_xMyHero.m_szName, NULL);
  130. rcID.top += 15;
  131. rcID.bottom += 15;
  132. g_xMainWnd.PutsHan(NULL, rcID, RGB(255, 250, 180), RGB(0, 0, 0), g_xGameProc.m_xMyHero.m_szGuildName, NULL);
  133. if ( g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].NewSetIndex(204) )
  134. {
  135. g_xMainWnd.DrawWithImageForComp(
  136. m_rcWnd.left+187, 
  137. m_rcWnd.top+266, 
  138. g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_lpstNewCurrWilImageInfo->shWidth, 
  139. g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_lpstNewCurrWilImageInfo->shHeight,
  140. (WORD*)(g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_pbCurrImage));
  141. }
  142. // g_xMainWnd.DrawWithGDI(m_rcWnd, NULL, RGB(255, 250, 180), 1);
  143. break;
  144. case _TYPE_STATUS:
  145. ShowCharEquipWnd();
  146. SetRect(&rcID, m_rcWnd.left+81, m_rcWnd.top+38, m_rcWnd.left+173, m_rcWnd.top+50);
  147. g_xMainWnd.PutsHan(NULL, rcID, RGB(255, 250, 180), RGB(0, 0, 0), g_xGameProc.m_xMyHero.m_szName, g_xMainWnd.CreateGameFont("泵辑眉", 10, 0, FW_BOLD));
  148. ShowCharStatus();
  149. if ( g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].NewSetIndex(203) )
  150. {
  151. g_xMainWnd.DrawWithImageForComp(
  152. m_rcWnd.left+187, 
  153. m_rcWnd.top+266, 
  154. g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_lpstNewCurrWilImageInfo->shWidth, 
  155. g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_lpstNewCurrWilImageInfo->shHeight,
  156. (WORD*)(g_xGameProc.m_xImage.m_xImageList[_IMAGE_INTER].m_pbCurrImage));
  157. }
  158. // g_xMainWnd.DrawWithGDI(m_rcWnd, NULL, RGB(255, 250, 180), 1);
  159. break;
  160. case _TYPE_SETMAGIC:
  161. ShowCharSetMagicWnd();
  162. SetRect(&rcID, m_rcWnd.left+81, m_rcWnd.top+38, m_rcWnd.left+173, m_rcWnd.top+50);
  163. g_xMainWnd.PutsHan(NULL, rcID, RGB(255, 250, 180), RGB(0, 0, 0), g_xGameProc.m_xMyHero.m_szName, g_xMainWnd.CreateGameFont("泵辑眉", 10, 0, FW_BOLD));
  164. break;
  165. }
  166. m_xStatusBtn[_BTN_ID_STATUSCLOSE].ShowGameBtn();
  167. m_xStatusBtn[_BTN_ID_STATUS].ShowGameBtn();
  168. m_xStatusBtn[_BTN_ID_STATUSMAGIC].ShowGameBtn();
  169. }
  170. /******************************************************************************************************************
  171. 窃荐疙 : CStatusWnd::SetStatusBtnInit()
  172. 累己磊 : 
  173. 累己老 : 
  174. 格利   : 
  175. 免仿   : VOID 
  176. [老磊][荐沥磊] : 荐沥郴侩
  177. *******************************************************************************************************************/
  178. VOID CStatusWnd::SetStatusBtnInit()
  179. {
  180. m_xStatusBtn[_BTN_ID_STATUSCLOSE].SetBtnState(_BTN_STATE_NORMAL);
  181. m_xStatusBtn[_BTN_ID_STATUS].SetBtnState(_BTN_STATE_NORMAL);
  182. m_xStatusBtn[_BTN_ID_STATUSMAGIC].SetBtnState(_BTN_STATE_NORMAL);
  183. }
  184. /******************************************************************************************************************
  185. 某腐磐 厘馒芒包访.
  186. *******************************************************************************************************************/
  187. /******************************************************************************************************************
  188. 窃荐疙 : CStatusWnd::ShowCharEquipWnd()
  189. 累己磊 : 
  190. 累己老 : 
  191. 格利   : 
  192. 免仿   : VOID 
  193. [老磊][荐沥磊] : 荐沥郴侩
  194. *******************************************************************************************************************/
  195. VOID CStatusWnd::ShowCharEquipWnd()
  196. {
  197. INT nStartX, nStartY;
  198. ShowGameWnd();
  199. // 巢磊牢瘤, 咯磊牢瘤备盒.
  200. if ( g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].NewSetIndex(g_xGameProc.m_xMyHero.m_stFeature.bGender) )
  201. {
  202. g_xMainWnd.DrawWithImageForComp(
  203. m_rcWnd.left+_EQUIP_CHAR_X+g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].m_lpstNewCurrWilImageInfo->shPX, 
  204. m_rcWnd.top+_EQUIP_CHAR_Y+g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].m_lpstNewCurrWilImageInfo->shPY, 
  205. g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].m_lpstNewCurrWilImageInfo->shWidth, 
  206. g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].m_lpstNewCurrWilImageInfo->shHeight,
  207. (WORD*)(g_xGameProc.m_xImage.m_xImageList[_IMAGE_PROGUSE].m_pbCurrImage));
  208. }
  209. // 酒捞袍 弊府扁.
  210. for ( INT nCnt = 0; nCnt < _EQUIP_MAX_CELL; nCnt++ )
  211. {
  212. if ( m_stEquipItem[nCnt].bSetted )
  213. {
  214. // m_stEquipItem[nCnt].xItem.m_stItemInfo.stStdItem.wLooks = 1;
  215. if ( nCnt!=_U_HELMET && nCnt!=_U_WEAPON && nCnt!=_U_DRESS )
  216. {
  217. nStartX = m_rcWnd.left+m_rcCell[nCnt].left;
  218. nStartY = m_rcWnd.top+m_rcCell[nCnt].top;
  219. m_stEquipItem[nCnt].xItem.DrawItem(nStartX, nStartY);
  220. }
  221. else
  222. {
  223. nStartX = m_rcWnd.left+_EQUIP_CHAR_X;
  224. nStartY = m_rcWnd.top+_EQUIP_CHAR_Y;
  225. m_stEquipItem[nCnt].xItem.DrawItem(nStartX, nStartY, _ITEM_TYPE_EQUIP);
  226. }
  227. }
  228. }
  229. ShowEquipItemState();
  230. }
  231. /******************************************************************************************************************
  232. 窃荐疙 : CStatusWnd::ShowEquipItemState()
  233. 累己磊 : 
  234. 累己老 : 
  235. 格利   : 
  236. 免仿   : VOID 
  237. [老磊][荐沥磊] : 荐沥郴侩
  238. *******************************************************************************************************************/
  239. VOID CStatusWnd::ShowEquipItemState()
  240. {
  241. INT nEquipNum = GetEquipNum(g_xGameProc.m_ptMousePos);
  242. if ( nEquipNum != -1 )
  243. {
  244. if ( m_stEquipItem[nEquipNum].bSetted )
  245. {
  246. m_stEquipItem[nEquipNum].xItem.ShowItemStatus(m_rcWnd.left+37, m_rcWnd.top+288);
  247. }
  248. }
  249. }
  250. /******************************************************************************************************************
  251. 窃荐疙 : CStatusWnd::GetEquipNum()
  252. 累己磊 : 
  253. 累己老 : 
  254. 格利   : 
  255. 涝仿   : POINT ptMouse
  256. 免仿   : INT 
  257. [老磊][荐沥磊] : 荐沥郴侩
  258. *******************************************************************************************************************/
  259. INT CStatusWnd::GetEquipNum(POINT ptMouse)
  260. {
  261. RECT rc;
  262. for ( INT nCnt = 0; nCnt < _EQUIP_MAX_CELL; nCnt++ )
  263. {
  264. SetRect(&rc, m_rcWnd.left+m_rcCell[nCnt].left, m_rcWnd.top+m_rcCell[nCnt].top, 
  265.     m_rcWnd.left+m_rcCell[nCnt].left+(m_rcCell[nCnt].right-m_rcCell[nCnt].left), m_rcWnd.top+m_rcCell[nCnt].top+(m_rcCell[nCnt].bottom-m_rcCell[nCnt].top));
  266. if ( PtInRect(&rc, ptMouse) )
  267. {
  268. return nCnt;
  269. }
  270. }
  271. return -1;
  272. }
  273. /******************************************************************************************************************
  274. 窃荐疙 : CStatusWnd::CheckEquipItem()
  275. 累己磊 : 
  276. 累己老 : 
  277. 格利   : 
  278. 涝仿   : CItem* pxItem
  279.          BYTE bEquipCell
  280.          POINT ptMouse
  281. 免仿   : BOOL 
  282. [老磊][荐沥磊] : 荐沥郴侩
  283. *******************************************************************************************************************/
  284. BOOL CStatusWnd::CheckEquipItem(CItem* pxItem, BYTE bEquipCell, POINT ptMouse)
  285. {
  286. RECT rc;
  287. for ( INT nCnt = 0; nCnt < _EQUIP_MAX_CELL; nCnt++ )
  288. {
  289. SetRect(&rc, m_rcWnd.left+m_rcCell[nCnt].left, m_rcWnd.top+m_rcCell[nCnt].top, 
  290.     m_rcWnd.left+m_rcCell[nCnt].left+(m_rcCell[nCnt].right-m_rcCell[nCnt].left), m_rcWnd.top+m_rcCell[nCnt].top+(m_rcCell[nCnt].bottom-m_rcCell[nCnt].top));
  291. if ( PtInRect(&rc, ptMouse) )
  292. {
  293. if ( pxItem->m_bAttr == _U_ARMRINGL || pxItem->m_bAttr == _U_ARMRINGR )
  294. {
  295. if ( pxItem->m_stItemInfo.stStdItem.bStdMode == 25 )
  296. {
  297. if ( _U_ARMRINGL == bEquipCell )
  298. return TRUE;
  299. }
  300. else
  301. {
  302. if ( _U_ARMRINGL == bEquipCell || _U_ARMRINGR == bEquipCell ) return TRUE;
  303. }
  304. }
  305. else if ( pxItem->m_bAttr == _U_RINGL || pxItem->m_bAttr ==  _U_RINGR )
  306. {
  307. if ( _U_RINGL == bEquipCell || _U_RINGR == bEquipCell ) return TRUE;
  308. }
  309. else if ( pxItem->m_bAttr == bEquipCell )
  310. {
  311. return TRUE;
  312. }
  313. }
  314. }
  315. return FALSE;
  316. }
  317. /******************************************************************************************************************
  318. 窃荐疙 : CStatusWnd::DeleteEquipItem()
  319. 累己磊 : 
  320. 累己老 : 
  321. 格利   : 
  322. 涝仿   : INT nEquipNum
  323. 免仿   : VOID 
  324. [老磊][荐沥磊] : 荐沥郴侩
  325. *******************************************************************************************************************/
  326. VOID CStatusWnd::DeleteEquipItem(INT nEquipNum)
  327. {
  328. ZeroMemory(&m_stEquipItem[nEquipNum], sizeof(ITEMSET));
  329. }
  330. VOID CStatusWnd::DeleteEquipItem(INT nMakeIndex, CHAR* szName)
  331. {
  332. for ( INT nCnt = 0; nCnt < _EQUIP_MAX_CELL; nCnt++ )
  333. {
  334. if ( m_stEquipItem[nCnt].bSetted )
  335. {
  336. if ( m_stEquipItem[nCnt].xItem.m_stItemInfo.nMakeIndex == nMakeIndex )
  337. {
  338. if ( !strcmp(m_stEquipItem[nCnt].xItem.m_stItemInfo.stStdItem.szName, szName) )
  339. {
  340. DeleteEquipItem(nCnt);
  341. break;
  342. }
  343. }
  344. }
  345. }
  346. }
  347. /******************************************************************************************************************
  348. 窃荐疙 : CStatusWnd::DeleteAllEquipItem()
  349. 累己磊 : 
  350. 累己老 : 
  351. 格利   : 
  352. 免仿   : VOID 
  353. [老磊][荐沥磊] : 荐沥郴侩
  354. *******************************************************************************************************************/
  355. VOID CStatusWnd::DeleteAllEquipItem()
  356. {
  357. for ( INT nCnt = 0; nCnt < _EQUIP_MAX_CELL; nCnt++ )
  358. {
  359. ZeroMemory(&m_stEquipItem[nCnt], sizeof(ITEMSET));
  360. }
  361. }
  362. /******************************************************************************************************************
  363. 窃荐疙 : CStatusWnd::AddEquipItem()
  364. 累己磊 : 
  365. 累己老 : 
  366. 格利   : 
  367. 涝仿   : CItem xItem
  368.          INT nEquipNum
  369.          BOOL bUseEquipNum
  370. 免仿   : BOOL 
  371. [老磊][荐沥磊] : 荐沥郴侩
  372. *******************************************************************************************************************/
  373. BOOL CStatusWnd::AddEquipItem(CItem xItem, INT nEquipNum, BOOL bUseEquipNum)
  374. {
  375. if ( bUseEquipNum )
  376. {
  377. if ( !m_stEquipItem[nEquipNum].bSetted )
  378. {
  379. m_stEquipItem[nEquipNum].bSetted = TRUE;
  380. m_stEquipItem[nEquipNum].xItem = xItem;
  381. m_stEquipItem[nEquipNum].xItem.m_shCellNum = nEquipNum;
  382. return TRUE;
  383. }
  384. }
  385. for ( INT nCnt = 0; nCnt < _EQUIP_MAX_CELL; nCnt++ )
  386. {
  387. if ( !m_stEquipItem[nCnt].bSetted )
  388. {
  389. m_stEquipItem[nCnt].bSetted = TRUE;
  390. m_stEquipItem[nCnt].xItem = xItem;
  391. m_stEquipItem[nCnt].xItem.m_shCellNum = nCnt;
  392. return TRUE;
  393. }
  394. }
  395. return FALSE;
  396. }
  397. /******************************************************************************************************************
  398. 窃荐疙 : CStatusWnd::ExtractEquipItem()
  399. 累己磊 : 
  400. 累己老 : 
  401. 格利   : 
  402. 涝仿   : CItem* pxItem
  403.          INT nEquipNum
  404. 免仿   : BOOL 
  405. [老磊][荐沥磊] : 荐沥郴侩
  406. *******************************************************************************************************************/
  407. BOOL CStatusWnd::ExtractEquipItem(CItem* pxItem, INT nEquipNum)
  408. {
  409. if ( m_stEquipItem[nEquipNum].bSetted )
  410. {
  411. memcpy(pxItem, &m_stEquipItem[nEquipNum].xItem, sizeof(CItem));
  412. DeleteEquipItem(nEquipNum);
  413. return TRUE;
  414. }
  415. return FALSE;
  416. }
  417. /******************************************************************************************************************
  418. 窃荐疙 : CStatusWnd::ChangeEquipWithCommon()
  419. 累己磊 : 
  420. 累己老 : 
  421. 格利   : 
  422. 涝仿   : INT nEquipNum
  423.          LPCOMMONITEMSET pstCommonItemSet
  424. 免仿   : VOID 
  425. [老磊][荐沥磊] : 荐沥郴侩
  426. *******************************************************************************************************************/
  427. VOID CStatusWnd::ChangeEquipWithCommon(INT nEquipNum, LPCOMMONITEMSET pstCommonItemSet)
  428. {
  429. if ( pstCommonItemSet->bSetted )
  430. {
  431. CItem xEquipItem;
  432. if ( ExtractEquipItem(&xEquipItem, nEquipNum) )
  433. {
  434. AddEquipItem(pstCommonItemSet->xItem, nEquipNum, TRUE);
  435. pstCommonItemSet->bSetted = TRUE;
  436. pstCommonItemSet->xItem = xEquipItem;
  437. pstCommonItemSet->bWaitResponse = FALSE;
  438. pstCommonItemSet->bIsEquipItem = TRUE;
  439. pstCommonItemSet->bIsHideItem = FALSE;
  440. pstCommonItemSet->bIsBeltItem = FALSE;
  441. pstCommonItemSet->xItem.m_shCellNum = nEquipNum; 
  442. }
  443. }
  444. }
  445. /******************************************************************************************************************
  446. 窃荐疙 : CStatusWnd::SetCommonFromEquip()
  447. 累己磊 : 
  448. 累己老 : 
  449. 格利   : 
  450. 涝仿   : INT nEquipNum
  451.          LPCOMMONITEMSET pstCommonItemSet
  452. 免仿   : VOID 
  453. [老磊][荐沥磊] : 荐沥郴侩
  454. *******************************************************************************************************************/
  455. VOID CStatusWnd::SetCommonFromEquip(INT nEquipNum, LPCOMMONITEMSET pstCommonItemSet)
  456. {
  457. CItem xEquipItem;
  458. if ( ExtractEquipItem(&xEquipItem, nEquipNum) )
  459. {
  460. pstCommonItemSet->bSetted = TRUE;
  461. pstCommonItemSet->xItem = xEquipItem;
  462. pstCommonItemSet->bWaitResponse = FALSE;
  463. pstCommonItemSet->bIsEquipItem = TRUE;
  464. pstCommonItemSet->bIsHideItem = FALSE;
  465. pstCommonItemSet->bIsBeltItem = FALSE;
  466. pstCommonItemSet->xItem.m_shCellNum = nEquipNum; 
  467. }
  468. }
  469. /******************************************************************************************************************
  470. 窃荐疙 : CStatusWnd::SetEquipFromCommon()
  471. 累己磊 : 
  472. 累己老 : 
  473. 格利   : 
  474. 涝仿   : INT nEquipNum
  475.          LPCOMMONITEMSET pstCommonItemSet
  476. 免仿   : VOID 
  477. [老磊][荐沥磊] : 荐沥郴侩
  478. *******************************************************************************************************************/
  479. VOID CStatusWnd::SetEquipFromCommon(INT nEquipNum, LPCOMMONITEMSET pstCommonItemSet)
  480. {
  481. if ( pstCommonItemSet->bSetted )
  482. {
  483. pstCommonItemSet->xItem.m_shCellNum = nEquipNum;
  484. AddEquipItem(pstCommonItemSet->xItem, nEquipNum);
  485. ZeroMemory(pstCommonItemSet, sizeof(COMMONITEMSET));
  486. }
  487. }
  488. /******************************************************************************************************************
  489. 窃荐疙 : CStatusWnd::SetTakeOnFromEquip()
  490. 累己磊 : 
  491. 累己老 : 
  492. 格利   : 
  493. 涝仿   : INT nEquipNum
  494. 免仿   : VOID 
  495. [老磊][荐沥磊] : 荐沥郴侩
  496. *******************************************************************************************************************/
  497. VOID CStatusWnd::SetTakeOnFromEquip(INT nEquipNum)
  498. {
  499. if ( m_stEquipItem[nEquipNum].bSetted )
  500. {
  501. m_stTakeOnItemSet.xItem   = m_stEquipItem[nEquipNum].xItem;
  502. m_stTakeOnItemSet.bSetted = TRUE;
  503. m_stTakeOnItemSet.xItem.m_shCellNum = nEquipNum;
  504. ZeroMemory(&m_stEquipItem[nEquipNum], sizeof(ITEMSET));
  505. }
  506. }
  507. /******************************************************************************************************************
  508. 窃荐疙 : CStatusWnd::SetTakeOnFromCommon()
  509. 累己磊 : 
  510. 累己老 : 
  511. 格利   : 
  512. 涝仿   : LPCOMMONITEMSET pstCommonItemSet
  513. 免仿   : VOID 
  514. [老磊][荐沥磊] : 荐沥郴侩
  515. *******************************************************************************************************************/
  516. VOID CStatusWnd::SetTakeOnFromCommon(INT nEquipNum, LPCOMMONITEMSET pstCommonItemSet)
  517. {
  518. if ( pstCommonItemSet->bSetted )
  519. {
  520. m_stTakeOnItemSet.xItem   = pstCommonItemSet->xItem;
  521. m_stTakeOnItemSet.bSetted = TRUE;
  522. m_stTakeOnItemSet.xItem.m_shCellNum = nEquipNum;
  523. ZeroMemory(pstCommonItemSet, sizeof(COMMONITEMSET));
  524. }
  525. }
  526. /******************************************************************************************************************
  527. 窃荐疙 : CStatusWnd::SetEquipFromTakeOn()
  528. 累己磊 : 
  529. 累己老 : 
  530. 格利   : 
  531. 免仿   : VOID 
  532. [老磊][荐沥磊] : 荐沥郴侩
  533. *******************************************************************************************************************/
  534. VOID CStatusWnd::SetEquipFromTakeOn()
  535. {
  536. if ( m_stTakeOnItemSet.bSetted )
  537. {
  538. AddEquipItem(m_stTakeOnItemSet.xItem, m_stTakeOnItemSet.xItem.m_shCellNum, TRUE);
  539. ZeroMemory(&m_stTakeOnItemSet, sizeof(ITEMSET));
  540. }
  541. }
  542. /******************************************************************************************************************
  543. 某腐磐 惑怕沥焊芒包访.
  544. *******************************************************************************************************************/
  545. /******************************************************************************************************************
  546. 窃荐疙 : CStatusWnd::ShowCharStatus()
  547. 累己磊 : 
  548. 累己老 : 
  549. 格利   : 
  550. 免仿   : VOID 
  551. [老磊][荐沥磊] : 荐沥郴侩
  552. *******************************************************************************************************************/
  553. VOID CStatusWnd::ShowCharStatus()
  554. {
  555. CHAR szBuff[MAX_PATH];
  556. POINT ptStart = {m_rcWnd.left+255+15, m_rcWnd.top+67};
  557. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "LEVEL", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  558. sprintf(szBuff, "%d", g_xGameProc.m_xMyHero.m_stAbility.bLevel);
  559. g_xMainWnd.PutsHan(NULL, ptStart.x+53, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  560. ptStart.y += 20;
  561. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "HP", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  562. sprintf(szBuff, "%d / %d", g_xGameProc.m_xMyHero.m_stAbility.wHP, g_xGameProc.m_xMyHero.m_stAbility.wMaxHP);
  563. g_xMainWnd.PutsHan(NULL, ptStart.x+53, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  564. ptStart.y += 20;
  565. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "MP", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  566. sprintf(szBuff, "%d / %d", g_xGameProc.m_xMyHero.m_stAbility.wMP, g_xGameProc.m_xMyHero.m_stAbility.wMaxMP);
  567. g_xMainWnd.PutsHan(NULL, ptStart.x+53, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  568. ptStart.y += 20;
  569. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "AC", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  570. sprintf(szBuff, "%d-%d", LOBYTE(g_xGameProc.m_xMyHero.m_stAbility.wAC), HIBYTE(g_xGameProc.m_xMyHero.m_stAbility.wAC));
  571. g_xMainWnd.PutsHan(NULL, ptStart.x+53, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  572. ptStart.y += 20;
  573. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "MAC", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  574. sprintf(szBuff, "%d-%d", LOBYTE(g_xGameProc.m_xMyHero.m_stAbility.wMAC), HIBYTE(g_xGameProc.m_xMyHero.m_stAbility.wMAC));
  575. g_xMainWnd.PutsHan(NULL, ptStart.x+53, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  576. ptStart.y += 20;
  577. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "DC", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  578. sprintf(szBuff, "%d-%d", LOBYTE(g_xGameProc.m_xMyHero.m_stAbility.wDC), HIBYTE(g_xGameProc.m_xMyHero.m_stAbility.wDC));
  579. g_xMainWnd.PutsHan(NULL, ptStart.x+53, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  580. ptStart.y += 20;
  581. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "MC", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  582. sprintf(szBuff, "%d-%d", LOBYTE(g_xGameProc.m_xMyHero.m_stAbility.wMC), HIBYTE(g_xGameProc.m_xMyHero.m_stAbility.wMC));
  583. g_xMainWnd.PutsHan(NULL, ptStart.x+53, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  584. ptStart.y += 20;
  585. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "SC", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  586. sprintf(szBuff, "%d-%d", LOBYTE(g_xGameProc.m_xMyHero.m_stAbility.wSC), HIBYTE(g_xGameProc.m_xMyHero.m_stAbility.wSC));
  587. g_xMainWnd.PutsHan(NULL, ptStart.x+53, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  588. ptStart.x = m_rcWnd.left+255+145;
  589. ptStart.y = m_rcWnd.top+67;
  590. FLOAT fExpRate = (FLOAT)((FLOAT)g_xGameProc.m_xMyHero.m_stAbility.dwExp/(FLOAT)g_xGameProc.m_xMyHero.m_stAbility.dwMaxExp);
  591. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "版氰", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  592. sprintf(szBuff, "%.2f%s", fExpRate*100, "%%");
  593. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  594. ptStart.y += 20;
  595. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "啊规公霸", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  596. sprintf(szBuff, "%d / %d", g_xGameProc.m_xMyHero.m_stAbility.wWeight, g_xGameProc.m_xMyHero.m_stAbility.wMaxWeight);
  597. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  598. ptStart.y += 20;
  599. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "馒侩公霸", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  600. sprintf(szBuff, "%d / %d", g_xGameProc.m_xMyHero.m_stAbility.bWearWeight, g_xGameProc.m_xMyHero.m_stAbility.bMaxWearWeight);
  601. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  602. ptStart.y += 20;
  603. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "剧颊公霸", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  604. sprintf(szBuff, "%d / %d", g_xGameProc.m_xMyHero.m_stAbility.bHandWeight, g_xGameProc.m_xMyHero.m_stAbility.bMaxHandWeight);
  605. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  606. ptStart.y += 20;
  607. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "沥犬", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  608. sprintf(szBuff, "+%d%", g_xGameProc.m_xMyHero.m_stSubAbility.bHitPoint);
  609. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  610. ptStart.y += 20;
  611. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "刮酶", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  612. sprintf(szBuff, "+%d%", g_xGameProc.m_xMyHero.m_stSubAbility.bSpeedPoint);
  613. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  614. ptStart.y += 20;
  615. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "付过雀乔", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  616. sprintf(szBuff, "+%d%", g_xGameProc.m_xMyHero.m_stSubAbility.wAntiMagic*10);
  617. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  618. ptStart.y += 20;
  619. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "吝刀雀乔", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  620. sprintf(szBuff, "+%d%", g_xGameProc.m_xMyHero.m_stSubAbility.bAntiPoison*10);
  621. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  622. ptStart.y += 20;
  623. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "吝刀雀汗", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  624. sprintf(szBuff, "+%d%", g_xGameProc.m_xMyHero.m_stSubAbility.bPoisonRecover*10);
  625. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  626. ptStart.y += 20;
  627. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "眉仿雀汗", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  628. sprintf(szBuff, "+%d%", g_xGameProc.m_xMyHero.m_stSubAbility.bHealthRecover*10);
  629. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  630. ptStart.y += 20;
  631. g_xMainWnd.PutsHan(NULL, ptStart.x, ptStart.y, RGB(200, 225, 250), RGB(0, 0, 0), "付仿雀汗", g_xMainWnd.CreateGameFont("奔覆眉", 9, 0, FW_BOLD));
  632. sprintf(szBuff, "+%d%", g_xGameProc.m_xMyHero.m_stSubAbility.bSpellRecover*10);
  633. g_xMainWnd.PutsHan(NULL, ptStart.x+55, ptStart.y, RGB(250, 250, 250), RGB(0, 0, 0), szBuff);
  634. }
  635. /******************************************************************************************************************
  636. 某腐磐 付过芒包访.
  637. *******************************************************************************************************************/
  638. VOID CStatusWnd::ShowCharSetMagicWnd()
  639. {
  640. INT nLine, nCnt, nStartX, nStartY;
  641. CHAR szKey[MAX_PATH];
  642. CHAR szLevel[MAX_PATH];
  643. /* CHAR* szSkillName[] =
  644. "馆岿八过",   "鞠楷贱",   "拳堪浅",   "亲付柳过", "措瘤盔龋",   "堪荤厘", "公怕焊",     "汾去拜",   "酒傍青过", "荤磊辣雀", "拳堪厘",     "雀汗贱",
  645. "搬拌",       "措雀汗",   "汾汲拳",   "汾牢厘",   "归榜家券贱", "葫汲浅", "措篮脚",     "林贱狼阜", "沤扁颇楷", "瘤堪贱",   "气混拌",     "气凯颇",
  646. "陛碍拳堪厘", "抗档",   "绢八贱",   "碍拜",   "堪拳搬",     "篮脚", "脚荐家券",   "老堡八过",  "寇荐八过",
  647. };
  648. */
  649. ShowGameWnd();
  650. for ( nCnt = 0; nCnt < _MAGIC_MAX_CELL; nCnt++ )
  651. {
  652. nLine = nCnt + m_nStartLineNum;
  653. if ( nLine >= m_bMyMagicCnt ) break;
  654. nStartX = m_rcWnd.left+m_rcMagicCell[nCnt].left;
  655. nStartY = m_rcWnd.top +m_rcMagicCell[nCnt].top;
  656. INT nMagicImgIdx = m_pstMyMagic[nLine].stStdMagic.wMagicID * 2;
  657. g_xGameProc.m_xImage.m_xImageList[_IMAGE_MICON].NewSetIndex(nMagicImgIdx);
  658. g_xMainWnd.DrawWithImageForComp(
  659. nStartX, 
  660. nStartY, 
  661. g_xGameProc.m_xImage.m_xImageList[_IMAGE_MICON].m_lpstNewCurrWilImageInfo->shWidth, 
  662. g_xGameProc.m_xImage.m_xImageList[_IMAGE_MICON].m_lpstNewCurrWilImageInfo->shHeight,
  663. (WORD*)(g_xGameProc.m_xImage.m_xImageList[_IMAGE_MICON].m_pbCurrImage));
  664. g_xMainWnd.PutsHan(NULL, nStartX+50, nStartY+5, RGB(255, 255, 220), RGB(0, 0, 0), m_pstMyMagic[nLine].stStdMagic.szMagicName);
  665. if ( m_pstMyMagic[nLine].bUseKey != 0 )
  666. {
  667. nMagicImgIdx = m_pstMyMagic[nLine].stStdMagic.wMagicID * 2 + 1;
  668. g_xGameProc.m_xImage.m_xImageList[_IMAGE_MICON].NewSetIndex(nMagicImgIdx);
  669. g_xMainWnd.DrawWithImageForComp(
  670. nStartX, 
  671. nStartY, 
  672. g_xGameProc.m_xImage.m_xImageList[_IMAGE_MICON].m_lpstNewCurrWilImageInfo->shWidth, 
  673. g_xGameProc.m_xImage.m_xImageList[_IMAGE_MICON].m_lpstNewCurrWilImageInfo->shHeight,
  674. (WORD*)(g_xGameProc.m_xImage.m_xImageList[_IMAGE_MICON].m_pbCurrImage));
  675. sprintf(szKey, "F%c", (char)m_pstMyMagic[nLine].bUseKey);
  676. g_xMainWnd.PutsHan(NULL, nStartX+140, nStartY+7, RGB(255, 255, 255), RGB(125, 125, 255), szKey);
  677. }
  678. if ( m_pstMyMagic[nLine].bLevel < 3 )
  679. {
  680. sprintf(szLevel, "%d        %d/%d", m_pstMyMagic[nLine].bLevel, m_pstMyMagic[nLine].nCurrTrain, m_pstMyMagic[nLine].stStdMagic.nTrain[m_pstMyMagic[nLine].bLevel]);
  681. g_xMainWnd.PutsHan(NULL, nStartX+50, nStartY+23, RGB(255, 255, 220), RGB(0, 0, 0), szLevel);
  682. }
  683. else
  684. {
  685. sprintf(szLevel, "%d        ", m_pstMyMagic[nLine].bLevel);
  686. g_xMainWnd.PutsHan(NULL, nStartX+50, nStartY+23, RGB(255, 255, 220), RGB(0, 0, 0), szLevel);
  687. }
  688. m_xMagicScrlBtn[0].ShowGameBtn();
  689. m_xMagicScrlBtn[1].ShowGameBtn();
  690. }
  691. }
  692. /******************************************************************************************************************
  693. 窃荐疙 : CStatusWnd::SetMagicKey()
  694. 累己磊 : 
  695. 累己老 : 
  696. 格利   : 
  697. 涝仿   : POINT ptMouse
  698.          BYTE bKey
  699. 免仿   : BOOL 
  700. [老磊][荐沥磊] : 荐沥郴侩
  701. *******************************************************************************************************************/
  702. BOOL CStatusWnd::SetMagicKey(POINT ptMouse, BYTE bKey)
  703. {
  704. RECT rc;
  705. INT  nCnt, nLine;
  706. for ( nCnt = 0; nCnt < _MAGIC_MAX_CELL; nCnt++ )
  707. {
  708. nLine = nCnt + m_nStartLineNum;
  709. if ( nLine >= m_bMyMagicCnt ) break;
  710. rc.left   = m_rcWnd.left + m_rcMagicCell[nCnt].left;
  711. rc.top   = m_rcWnd.top  + m_rcMagicCell[nCnt].top;
  712. rc.right  = m_rcWnd.left + m_rcMagicCell[nCnt].right;
  713. rc.bottom = m_rcWnd.top  + m_rcMagicCell[nCnt].bottom;
  714. if ( PtInRect(&rc, ptMouse) )
  715. {
  716. for ( INT nLoop = 0; nLoop < m_bMyMagicCnt; nLoop++ )
  717. {
  718. if ( m_pstMyMagic[nLoop].bUseKey == bKey )
  719. {
  720. m_pstMyMagic[nLoop].bUseKey = 0;
  721. g_xClientSocket.SendMagicKeyChange(m_pstMyMagic[nLoop].bUseKey, m_pstMyMagic[nLoop].stStdMagic.wMagicID);
  722. }
  723. }
  724. if ( m_pstMyMagic[nLine].bUseKey != bKey )
  725. {
  726. m_pstMyMagic[nLine].bUseKey = bKey;
  727. g_xClientSocket.SendMagicKeyChange(m_pstMyMagic[nLine].bUseKey, m_pstMyMagic[nLine].stStdMagic.wMagicID);
  728. }
  729. return TRUE;
  730. }
  731. }
  732. return FALSE;
  733. }
  734. /******************************************************************************************************************
  735. 窃荐疙 : CStatusWnd::GetMagicByKey()
  736. 累己磊 : 
  737. 累己老 : 
  738. 格利   : 
  739. 涝仿   : BYTE bKey
  740. 免仿   : LPCLIENTMAGICRCD 
  741. [老磊][荐沥磊] : 荐沥郴侩
  742. *******************************************************************************************************************/
  743. LPCLIENTMAGICRCD CStatusWnd::GetMagicByKey(BYTE bKey)
  744. {
  745. LPCLIENTMAGICRCD pstMagic = NULL;
  746. for ( INT nCnt = 0; nCnt < m_bMyMagicCnt; nCnt++ )
  747. {
  748. pstMagic = &m_pstMyMagic[nCnt];
  749. if ( pstMagic->bUseKey == bKey )
  750. {
  751. break;
  752. }
  753. }
  754. return pstMagic;
  755. }
  756. /******************************************************************************************************************
  757. Message Function.
  758. *******************************************************************************************************************/
  759. /******************************************************************************************************************
  760. 窃荐疙 : CStatusWnd::OnKeyDown()
  761. 累己磊 : 
  762. 累己老 : 
  763. 格利   : 
  764. 涝仿   : WPARAM wParam
  765.          LPARAM lParam
  766.          POINT ptMouse
  767. 免仿   : BOOL 
  768. [老磊][荐沥磊] : 荐沥郴侩
  769. *******************************************************************************************************************/
  770. BOOL CStatusWnd::OnKeyDown(WPARAM wParam, LPARAM lParam, POINT ptMouse)
  771. {
  772. INT  nLine, nCnt;
  773. BOOL bCheck;
  774. RECT rc;
  775. if ( !PtInRect(&m_rcWnd, ptMouse) ) return TRUE;
  776. bCheck = FALSE;
  777. for ( nCnt = 0; nCnt < _MAGIC_MAX_CELL; nCnt++ )
  778. {
  779. nLine = nCnt + m_nStartLineNum;
  780. rc.left  = m_rcWnd.left + m_rcMagicCell[nCnt].left;
  781. rc.top  = m_rcWnd.top  + m_rcMagicCell[nCnt].top;
  782. rc.right = m_rcWnd.left + m_rcMagicCell[nCnt].right;
  783. rc.bottom= m_rcWnd.top + m_rcMagicCell[nCnt].bottom;
  784. if ( PtInRect(&rc, ptMouse) )
  785. {
  786. bCheck = TRUE;
  787. break;
  788. }
  789. }
  790. if ( !bCheck )  return TRUE;
  791. if ( m_bType == _TYPE_SETMAGIC )
  792. {
  793. switch ( wParam )
  794. {
  795. case VK_F1: SetMagicKey(ptMouse, '1'); return TRUE;
  796. case VK_F2: SetMagicKey(ptMouse, '2'); return TRUE;
  797. case VK_F3: SetMagicKey(ptMouse, '3'); return TRUE;
  798. case VK_F4: SetMagicKey(ptMouse, '4'); return TRUE;
  799. case VK_F5: SetMagicKey(ptMouse, '5'); return TRUE;
  800. case VK_F6: SetMagicKey(ptMouse, '6'); return TRUE;
  801. case VK_F7: SetMagicKey(ptMouse, '7'); return TRUE;
  802. case VK_F8: SetMagicKey(ptMouse, '8'); return TRUE;
  803. }
  804. }
  805. return FALSE;
  806. }
  807. /******************************************************************************************************************
  808. 窃荐疙 : CStatusWnd::OnLButtonUp()
  809. 累己磊 : 
  810. 累己老 : 
  811. 格利   : 
  812. 涝仿   : POINT ptMouse
  813. 免仿   : BOOL 
  814. [老磊][荐沥磊] : 荐沥郴侩
  815. *******************************************************************************************************************/
  816. BOOL CStatusWnd::OnLButtonUp(LPCOMMONITEMSET pstCommonItemSet, POINT ptMouse)
  817. {
  818. INT nEquipNum;
  819. m_xStatusBtn[_BTN_ID_STATUSCLOSE].ChangeRect(m_rcWnd.left+222, m_rcWnd.top+298);
  820. m_xStatusBtn[_BTN_ID_STATUS     ].ChangeRect(m_rcWnd.left+_BTN_ID_STATUS_X, m_rcWnd.top+_BTN_ID_STATUS_Y);
  821. m_xStatusBtn[_BTN_ID_STATUSMAGIC].ChangeRect(m_rcWnd.left+_BTN_ID_STATUSMAGIC_X, m_rcWnd.top+_BTN_ID_STATUSMAGIC_Y);
  822. if ( m_xStatusBtn[_BTN_ID_STATUSCLOSE].OnLButtonUp(ptMouse) ) return TRUE;
  823. if ( m_xStatusBtn[_BTN_ID_STATUS].OnLButtonUp(ptMouse) )
  824. {
  825. if ( m_bType == _TYPE_STATUS )
  826. {
  827. ResetWndImg(_WNDIMGIDX_ITEMSET);
  828. m_bType = _TYPE_EQUIP;
  829. m_xStatusBtn[_BTN_ID_STATUS].ResetGameBtn(212, 213);
  830. }
  831. else
  832. {
  833. ResetWndImg(_WNDIMGIDX_STATUS);
  834. m_bType = _TYPE_STATUS; 
  835. m_xStatusBtn[_BTN_ID_STATUS].ResetGameBtn(210, 211);
  836. if ( m_rcWnd.right > 800 )
  837. {
  838. m_rcWnd.left  = 260;
  839. m_rcWnd.right = 800;
  840. }
  841. }
  842. }
  843. if ( m_xStatusBtn[_BTN_ID_STATUSMAGIC].OnLButtonUp(ptMouse) )
  844. {
  845. m_bType = _TYPE_SETMAGIC;
  846. ResetWndImg(_WNDIMGIDX_SKILLSET);
  847. }
  848. if ( m_bType == _TYPE_SETMAGIC )
  849. {
  850. m_xMagicScrlBtn[0].ChangeRect(m_rcWnd.left+232, m_rcWnd.top+147);
  851. m_xMagicScrlBtn[1].ChangeRect(m_rcWnd.left+232, m_rcWnd.top+253);
  852. if ( m_xMagicScrlBtn[0].OnLButtonUp(ptMouse) )
  853. {
  854. if ( m_nStartLineNum > 0 ) m_nStartLineNum--;
  855. }
  856. if ( m_xMagicScrlBtn[1].OnLButtonUp(ptMouse) )
  857. {
  858. if ( m_nStartLineNum < m_bMyMagicCnt-_MAGIC_MAX_CELL) m_nStartLineNum++;
  859. }
  860. }
  861. // 厘馒芒 劝己拳 灯阑版快.
  862. if ( m_bType == _TYPE_EQUIP || m_bType == _TYPE_STATUS )
  863. {
  864. nEquipNum = GetEquipNum(ptMouse);
  865. // 付快胶啊 厘馒芒康开俊 乐阑锭.
  866. if ( nEquipNum != -1)
  867. {
  868. // 努腐茄厘馒芒俊 酒捞袍捞 乐阑版快.
  869. if ( m_stEquipItem[nEquipNum].bSetted )
  870. {
  871. // 傍烹(付快胶)酒捞袍悸捞 厚绢乐栏搁,
  872. if ( !pstCommonItemSet->bSetted )
  873. {   
  874. // 付快胶俊 酒捞袍阑 嘿咯初栏搁 牢亥配府 扩档俊辑 努腐窍绰鉴埃 CM_TAKEOFFITEM皋矫瘤甫 焊辰促.
  875. SetCommonFromEquip(nEquipNum, pstCommonItemSet);
  876. }
  877. // 傍烹(付快胶)酒捞袍悸篮 乐绊, 辑滚肺何磐 览翠脚龋甫 扁促府绰 吝捞 酒聪搁,
  878. // 傍烹酒捞袍阑 m_stTakeOnItemSet俊 酒捞袍阑 技泼秦滴绊, 泅犁 努腐等 厘馒芒 酒捞袍阑 傍烹酒捞袍栏肺 技泼窍绊唱辑,
  879. // CM_TAKEONITEM皋矫瘤甫 焊辰促.
  880. else if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse )
  881. {
  882. // 焊郴扁傈 康开捞 辑肺 嘎绰啊(馆瘤磊府俊 馆瘤啊 肋甸绢艾绰瘤)甫 眉农茄促.
  883. if ( CheckEquipItem(&pstCommonItemSet->xItem, nEquipNum, ptMouse) )
  884. {
  885. SetTakeOnFromCommon(nEquipNum, pstCommonItemSet);
  886. SetCommonFromEquip(nEquipNum, pstCommonItemSet);
  887. g_xClientSocket.SendTakeOnOffItem(CM_TAKEONITEM, nEquipNum, m_stTakeOnItemSet.xItem.m_stItemInfo.stStdItem.szName, m_stTakeOnItemSet.xItem.m_stItemInfo.nMakeIndex);
  888. pstCommonItemSet->bWaitResponse = TRUE;
  889. }
  890. }
  891. }
  892. // 努腐茄 厘馒芒俊 酒捞袍捞 绝阑版快.
  893. else
  894. {
  895. // 傍烹(付快胶)酒捞袍悸篮 乐绊, 辑滚肺何磐 览翠脚龋甫 扁促府绰 吝捞 酒聪搁, 傍烹酒捞袍阑 m_stTakeOnItemSet俊 酒捞袍阑 技泼秦敌促.
  896. if ( pstCommonItemSet->bSetted && !pstCommonItemSet->bWaitResponse )
  897. {
  898. if ( CheckEquipItem(&pstCommonItemSet->xItem, nEquipNum, ptMouse) )
  899. {
  900. // 辑滚肺 皋矫瘤甫 焊尘鞘夸绰 绝促. 酒捞袍阑 哈菌促啊 促矫馒侩茄版快.
  901. if ( pstCommonItemSet->bIsEquipItem )
  902. {
  903. SetEquipFromCommon(pstCommonItemSet->xItem.m_shCellNum, pstCommonItemSet);
  904. ZeroMemory(pstCommonItemSet, sizeof(COMMONITEMSET));
  905. }
  906. else
  907. {
  908. SetTakeOnFromCommon(nEquipNum, pstCommonItemSet);
  909. g_xClientSocket.SendTakeOnOffItem(CM_TAKEONITEM, nEquipNum, m_stTakeOnItemSet.xItem.m_stItemInfo.stStdItem.szName, m_stTakeOnItemSet.xItem.m_stItemInfo.nMakeIndex);
  910. pstCommonItemSet->bWaitResponse = TRUE;
  911. }
  912. }
  913. }
  914. }
  915. }
  916. }
  917. return FALSE;
  918. }
  919. /******************************************************************************************************************
  920. 窃荐疙 : CStatusWnd::OnMouseMove()
  921. 累己磊 : 
  922. 累己老 : 
  923. 格利   : 
  924. 涝仿   : POINT ptMouse
  925. 免仿   : VOID 
  926. [老磊][荐沥磊] : 荐沥郴侩
  927. *******************************************************************************************************************/
  928. VOID CStatusWnd::OnMouseMove(POINT ptMouse)
  929. {
  930. if ( m_bType == _TYPE_SETMAGIC )
  931. {
  932. m_xMagicScrlBtn[0].ChangeRect(m_rcWnd.left+232, m_rcWnd.top+147);
  933. m_xMagicScrlBtn[1].ChangeRect(m_rcWnd.left+232, m_rcWnd.top+253);
  934. m_xMagicScrlBtn[0].OnMouseMove(ptMouse);
  935. m_xMagicScrlBtn[1].OnMouseMove(ptMouse);
  936. }
  937. m_xStatusBtn[_BTN_ID_STATUSCLOSE   ].ChangeRect(m_rcWnd.left+222, m_rcWnd.top+298);
  938. m_xStatusBtn[_BTN_ID_STATUS    ].ChangeRect(m_rcWnd.left+_BTN_ID_STATUS_X, m_rcWnd.top+_BTN_ID_STATUS_Y);
  939. m_xStatusBtn[_BTN_ID_STATUSMAGIC   ].ChangeRect(m_rcWnd.left+_BTN_ID_STATUSMAGIC_X, m_rcWnd.top+_BTN_ID_STATUSMAGIC_Y);
  940. m_xStatusBtn[_BTN_ID_STATUSCLOSE   ].OnMouseMove(ptMouse);
  941. m_xStatusBtn[_BTN_ID_STATUS    ].OnMouseMove(ptMouse);
  942. m_xStatusBtn[_BTN_ID_STATUSMAGIC   ].OnMouseMove(ptMouse);
  943. }
  944. /******************************************************************************************************************
  945. 窃荐疙 : CStatusWnd::OnLButtonDown()
  946. 累己磊 : 
  947. 累己老 : 
  948. 格利   : 
  949. 涝仿   : LPCOMMONITEMSET pstCommonItemSet
  950.          POINT ptMouse
  951. 免仿   : BOOL 
  952. [老磊][荐沥磊] : 荐沥郴侩
  953. *******************************************************************************************************************/
  954. BOOL CStatusWnd::OnLButtonDown(LPCOMMONITEMSET pstCommonItemSet, POINT ptMouse)
  955. {
  956. INT nEquipNum;
  957. m_xStatusBtn[_BTN_ID_STATUSCLOSE   ].ChangeRect(m_rcWnd.left+222, m_rcWnd.top+298);
  958. m_xStatusBtn[_BTN_ID_STATUS        ].ChangeRect(m_rcWnd.left+_BTN_ID_STATUS_X, m_rcWnd.top+_BTN_ID_STATUS_Y);
  959. m_xStatusBtn[_BTN_ID_STATUSMAGIC   ].ChangeRect(m_rcWnd.left+_BTN_ID_STATUSMAGIC_X, m_rcWnd.top+_BTN_ID_STATUSMAGIC_Y);
  960. if ( m_xStatusBtn[_BTN_ID_STATUSCLOSE   ].OnLButtonDown(ptMouse) ) return TRUE;
  961. if ( m_xStatusBtn[_BTN_ID_STATUS     ].OnLButtonDown(ptMouse) ) return TRUE;
  962. if ( m_xStatusBtn[_BTN_ID_STATUSMAGIC   ].OnLButtonDown(ptMouse) ) return TRUE;
  963. if ( m_bType == _TYPE_SETMAGIC )
  964. {
  965. m_xMagicScrlBtn[0].ChangeRect(m_rcWnd.left+232, m_rcWnd.top+147);
  966. m_xMagicScrlBtn[1].ChangeRect(m_rcWnd.left+232, m_rcWnd.top+253);
  967. if ( m_xMagicScrlBtn[0].OnLButtonDown(ptMouse) ) return TRUE;
  968. if ( m_xMagicScrlBtn[1].OnLButtonDown(ptMouse) ) return TRUE;
  969. }
  970. nEquipNum = GetEquipNum(ptMouse);
  971. if ( nEquipNum == -1 ) m_bCanMove = TRUE;
  972. else
  973. {
  974. if ( m_stEquipItem[nEquipNum].bSetted ) m_bCanMove = FALSE;
  975. else m_bCanMove = TRUE;
  976. }
  977. return FALSE;
  978. }
  979. /******************************************************************************************************************
  980. 窃荐疙 : CStatusWnd::OnScrollDown()
  981. 累己磊 : 
  982. 累己老 : 
  983. 格利   : 
  984. 免仿   : VOID 
  985. [老磊][荐沥磊] : 荐沥郴侩
  986. *******************************************************************************************************************/
  987. VOID CStatusWnd::OnScrollDown()
  988. {
  989. if ( m_bType == _TYPE_SETMAGIC )
  990. {
  991. if ( m_nStartLineNum > 0 ) m_nStartLineNum--;
  992. }
  993. }
  994. /******************************************************************************************************************
  995. 窃荐疙 : CStatusWnd::OnScrollUp()
  996. 累己磊 : 
  997. 累己老 : 
  998. 格利   : 
  999. 免仿   : VOID 
  1000. [老磊][荐沥磊] : 荐沥郴侩
  1001. *******************************************************************************************************************/
  1002. VOID CStatusWnd::OnScrollUp()
  1003. {
  1004. if ( m_bType == _TYPE_SETMAGIC )
  1005. {
  1006. if ( m_nStartLineNum < m_bMyMagicCnt-_MAGIC_MAX_CELL) m_nStartLineNum++;
  1007. }
  1008. }