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

模拟服务器

开发平台:

Visual C++

  1. /******************************************************************************************************************
  2.                                                                                                                    
  3. 葛碘疙:
  4. 累己磊:
  5. 累己老:
  6. [老磊][荐沥磊] : 荐沥 郴侩
  7.                                                                                                                    
  8. *******************************************************************************************************************/
  9. #include "StdAfx.h"
  10. /////////////////////////////////////////////////////
  11. #define MAX_KINDS_LINE 11
  12. #define MAX_ITEMLIST_LINE 5
  13. #define LINE_GAP 5
  14. /////////////////////////////////////////////////////
  15. #define POS_KINDS_X 44
  16. #define POS_KINDS_Y 43
  17. #define POS_KINDSTITLE_X POS_KINDS_X+12
  18. #define POS_KINDSTITLE_Y 28
  19. #define POS_ITEMSTITLE_X POS_ITEMLIST_LINE_X+15
  20. #define POS_ITEMSTITLE_Y POS_ITEMLIST_LINE_Y
  21. #define POS_ITEMLIST_LINE_X 159
  22. #define POS_ITEMLIST_LINE_Y 90
  23. #define POS_ITEMNAME_X 190
  24. #define POS_ITEMNAME_Y 28
  25. #define POS_ITEMIMAGE_X 188
  26. #define POS_ITEMIMAGE_Y 56
  27. #define LEFT_KIND_RECT 42
  28. #define RIGHT_KIND_RECT 130
  29. #define TOP_KIND_RECT 25
  30. #define BOTTOM_KIND_RECT 228
  31. #define LEFT_ITEM_RECT 157
  32. #define RIGHT_ITEM_RECT 309
  33. #define TOP_ITEM_RECT 103
  34. #define BOTTOM_ITEM_RECT 199
  35. #define POS_X 84 // ex (傈:POS_X,POS_Y)(GOLD:POS__X,POS_Y)
  36. #define POS_Y 246 // ex (公霸:POS_X,POS__Y)(啊规公霸:POS__X,POS__Y)
  37. #define POS__Y 270
  38. #define POS__X 246
  39. #define MAX_MSG_LENGTH 20480 // (20Kb)
  40. CStoreWnd::CStoreWnd()
  41. {
  42. POINT Temp;
  43. m_nIsReadyToDisplay = 0;
  44. m_nCurrentItemTop = 0;
  45. m_nCurrentKindTop = 0;
  46. m_nMaxItemLine = 0;
  47. m_nMaxKindLine = 0;
  48. Temp.x = POS_KINDS_X;
  49. Temp.y = POS_KINDS_Y;
  50. m_xKindBtn.InitTxtBtn(MAX_KINDS_LINE,Temp,LINE_GAP);
  51. Temp.x = POS_ITEMLIST_LINE_X;
  52. Temp.y = POS_ITEMLIST_LINE_Y + 17;
  53. // tRect.top+POS_ITEMLIST_LINE_Y + 17 + (xtBtn->nLinePos-m_nCurrentItemTop)*(tSize.cy+LINE_GAP);
  54. m_xItemLstBtn.InitTxtBtn(MAX_ITEMLIST_LINE,Temp,LINE_GAP);
  55. m_bSelectedKind=FALSE;
  56. m_bSelectedItem=FALSE;
  57. m_xKindRect.left = LEFT_KIND_RECT;
  58. m_xKindRect.top = TOP_KIND_RECT;
  59. m_xKindRect.right = RIGHT_KIND_RECT;
  60. m_xKindRect.bottom = BOTTOM_KIND_RECT;
  61. m_xItemRect.left = LEFT_ITEM_RECT;
  62. m_xItemRect.top = TOP_ITEM_RECT;
  63. m_xItemRect.right = RIGHT_ITEM_RECT;
  64. m_xItemRect.bottom = BOTTOM_ITEM_RECT;
  65. }
  66. CStoreWnd::~CStoreWnd()
  67. {
  68. }
  69. VOID CStoreWnd::CreateStoreWnd(INT nID, CWHWilImageData* pxWndImage, INT nFrameImgIdx, INT nStartX, INT nStartY, INT nWidth, INT nHeight, BOOL bCanMove)
  70. {
  71. CreateGameWnd(nID, pxWndImage, nFrameImgIdx, bCanMove, nStartX, nStartY, nWidth, nHeight);
  72. }
  73. VOID CStoreWnd::ShowStoreWnd()
  74. {
  75. RECT tRect;
  76. CMTxtBtn* xtBtn;
  77. ShowGameWnd();
  78. OnUpdateQueue();
  79. if(m_nIsReadyToDisplay>0)
  80. {
  81. tRect = GetGameWndRect();
  82. g_xMainWnd.PutsHan(NULL,tRect.left + POS_KINDSTITLE_X,tRect.top + POS_KINDSTITLE_Y,RGB(255,255,255),RGB(0,0,0)," 惑  前  疙");
  83. // if(stdMod=1) 
  84. g_xMainWnd.PutsHan(NULL,tRect.left + POS_ITEMSTITLE_X,tRect.top + POS_ITEMSTITLE_Y,RGB(255,255,255),RGB(0,0,0)," 备   盒          啊   拜");
  85. if(m_bSelectedKind)  
  86. {// Kinds啊 急琶 登菌阑锭
  87. g_xMainWnd.PutsHan(NULL,tRect.left + POS_ITEMNAME_X+20,tRect.top + POS_ITEMNAME_Y + 10 ,RGB(255,255,255),RGB(0,0,0),"蜡岿档");
  88. g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].NewSetIndex(1); // 秦寸 酒捞袍 Looks甫 持阑巴
  89. g_xMainWnd.DrawWithImageForCompClipRgn(
  90. tRect.left + POS_ITEMIMAGE_X - (g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].m_lpstNewCurrWilImageInfo->shWidth / 2),tRect.top + POS_ITEMIMAGE_Y - (g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].m_lpstNewCurrWilImageInfo->shHeight / 2)
  91. ,g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].m_lpstNewCurrWilImageInfo->shWidth,g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].m_lpstNewCurrWilImageInfo->shHeight,
  92. (WORD*)g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY].m_pbCurrImage,800,600);
  93. }
  94. if(m_nIsReadyToDisplay&&1)
  95. { // Kinds List 免仿
  96. m_xKindBtn.m_pTxtBtn.MoveCurrentToTop();
  97. for(int i = 0 ; i <m_xKindBtn.GetButtonCount(); i++)
  98. {
  99. xtBtn = m_xKindBtn.m_pTxtBtn.GetCurrentData();
  100. if((xtBtn->nLinePos>=m_nCurrentKindTop)&&(xtBtn->nLinePos<(m_nCurrentKindTop+MAX_KINDS_LINE)))
  101. {
  102. SIZE tSize;
  103. tSize = g_xMainWnd.GetStrLength(NULL,NULL,xtBtn->Txt);
  104. g_xMainWnd.PutsHan(NULL,tRect.left + xtBtn->xRect.left +POS_KINDS_X,tRect.top + (xtBtn->nLinePos-m_nCurrentKindTop)*(tSize.cy+LINE_GAP) +POS_KINDS_Y,(!xtBtn->bIsClicked?xtBtn->nColor:xtBtn->cColor),RGB(0,0,0),xtBtn->Txt);
  105. }
  106. m_xKindBtn.m_pTxtBtn.MoveNextNode();
  107. }
  108. }
  109. if((m_nIsReadyToDisplay>>1)&&1)
  110. { // Item List 免仿
  111. // g_xMainWnd.PutsHan(NULL,tRect.left+POS_ITEMLIST_LINE_X,tRect.top+POS_ITEMLIST_LINE_Y+17,RGB(255,255,0),RGB(0,0,0),"123456789012345678901234567890");
  112. m_xItemLstBtn.m_pTxtBtn.MoveCurrentToTop();
  113. for(int i = 0 ; i <m_xItemLstBtn.GetButtonCount(); i++)
  114. {
  115. xtBtn = m_xItemLstBtn.m_pTxtBtn.GetCurrentData();
  116. if((xtBtn->nLinePos>=m_nCurrentItemTop)&&(xtBtn->nLinePos<(m_nCurrentItemTop+MAX_KINDS_LINE)))
  117. {
  118. SIZE tSize;
  119. tSize = g_xMainWnd.GetStrLength(NULL,NULL,xtBtn->Txt);
  120. g_xMainWnd.PutsHan(NULL,tRect.left+POS_ITEMLIST_LINE_X + xtBtn->xRect.left +80,tRect.top+POS_ITEMLIST_LINE_Y + 17 + (xtBtn->nLinePos-m_nCurrentItemTop)*(tSize.cy+LINE_GAP) ,(!xtBtn->bIsClicked?xtBtn->nColor:xtBtn->cColor),RGB(0,0,0),xtBtn->Txt);
  121. g_xMainWnd.PutsHan(NULL,tRect.left+POS_ITEMLIST_LINE_X + xtBtn->xRect.left ,tRect.top+POS_ITEMLIST_LINE_Y + 17 + (xtBtn->nLinePos-m_nCurrentItemTop)*(tSize.cy+LINE_GAP) ,(!xtBtn->bIsClicked?xtBtn->nColor:xtBtn->cColor),RGB(0,0,0),xtBtn->sTxt);
  122. }
  123. m_xItemLstBtn.m_pTxtBtn.MoveNextNode();
  124. }
  125. }
  126. }
  127. }
  128. BOOL CStoreWnd::OnLButtonUp(POINT ptMouse)
  129. {
  130. // BOOL bResult;
  131. RECT tRect;
  132. POINT tPos;
  133. // CHAR* szTest;
  134. CMTxtBtn* tBtn;
  135. tRect = GetGameWndRect(); // Get Window Rect
  136. tPos.x = tRect.left;
  137. tPos.y = tRect.top;
  138. //bResult = ClickCommandProcess(
  139. if(IsInRect(ptMouse,m_xKindRect))
  140. { // 格废 List
  141. tBtn = m_xKindBtn.ClickCheck(tPos,ptMouse,m_nCurrentKindTop);
  142. if(tBtn!=NULL)
  143. {
  144. // 喘妨柳 滚瓢捞 皋春啊 乐蠢瘤甫 犬牢 窍绊.
  145. // 皋春啊 绝栏搁 弊成 急咆俊辑 肛眠绊 皋春啊 乐阑版快
  146. // 窍困 皋春甫 夸备茄促.
  147. tBtn = m_xKindBtn.ClickCheck(tPos,ptMouse,m_nCurrentKindTop);
  148. if(tBtn->nColor==RGB(255,255,0))
  149. {
  150. // 皋春啊 乐衬?
  151. // 荤扁 阂啊瓷
  152. SendDeTailGoodsList(0,tBtn->Param);
  153. }
  154. else
  155. {
  156. // 皋痹啊 绝衬?
  157. // 弊烦 弊成 急咆. 荤扁 啊瓷.
  158. }
  159. }
  160. else
  161. {
  162. m_nIsReadyToDisplay = 1;
  163. m_bSelectedKind= FALSE;
  164. }
  165. }
  166. if(IsInRect(ptMouse,m_xItemRect))
  167. { // 亲格  List
  168. tBtn = NULL;
  169. tBtn = m_xItemLstBtn.ClickCheck(tPos,ptMouse,m_nCurrentItemTop);
  170. if(tBtn!=NULL)
  171. {
  172. // 荤扁 啊瓷
  173. m_bSelectedItem = TRUE;
  174. //烙矫
  175. SendButThisITme(tBtn);
  176. }
  177. else
  178. {
  179. m_bSelectedItem = FALSE;
  180. }
  181. }
  182. return FALSE;
  183. }
  184. VOID CStoreWnd::OnMouseMove(POINT ptMouse)
  185. {
  186. }
  187. BOOL CStoreWnd::OnLButtonDown(POINT ptMouse)
  188. {
  189. RECT tRect;
  190. POINT tPos;
  191. tRect = GetGameWndRect(); // Get Window Rect
  192. tPos.x = tRect.left;
  193. tPos.y = tRect.top;
  194. if(IsInRect(ptMouse,m_xKindRect))
  195. {
  196. m_xKindBtn.ClickFreeAllBtn();
  197. m_xKindBtn.ClickCheck(tPos,ptMouse,m_nCurrentKindTop);
  198. }
  199. if(IsInRect(ptMouse,m_xItemRect))
  200. {
  201. m_xItemLstBtn.ClickFreeAllBtn();
  202. }
  203. return FALSE;
  204. }
  205. BOOL CStoreWnd::SetBuyKinds(CHAR* Msg,INT Count)   // Eatch Button Divider 'n
  206. {
  207. CNPCTxtAnalysis tTxtAnalysis; // 窜瘤 GetValidStr窃荐甫 荤侩窍扁 困秦辑..
  208. CHAR* szParam;
  209. CHAR* pszStr = new CHAR [MAX_MSG_LENGTH];
  210. if(m_nIsReadyToDisplay&&1)
  211. {
  212. m_xKindBtn.ReleaseButtons();
  213. m_bSelectedKind = FALSE;
  214. // 历厘等 虐 朝府扁
  215. m_nIsReadyToDisplay= 0; // Kinds List 汲沥捞 钱啡澜阑 舅覆
  216. }
  217. ZeroMemory(pszStr,MAX_MSG_LENGTH);
  218. strcpy(pszStr,Msg);
  219. m_nMaxKindLine = Count;
  220. for(int i = 0 ; i < Count ; i ++)
  221. {
  222. CHAR* szTemp;
  223. CHAR* szGName = new CHAR[MAX_PATH];
  224. CHAR* szGSubMenu = new CHAR[MAX_PATH];
  225. CHAR* szGPrice = new CHAR[MAX_PATH];
  226. CHAR* szGStock = new CHAR[MAX_PATH];
  227. INT   nSubMenuCount;
  228. szTemp = tTxtAnalysis.GetValidStr(pszStr,szGName,'/');
  229. strcpy(pszStr,szTemp);
  230. szTemp = tTxtAnalysis.GetValidStr(pszStr,szGSubMenu,'/');
  231. strcpy(pszStr,szTemp);
  232. nSubMenuCount = atoi(szGSubMenu);
  233. szTemp = tTxtAnalysis.GetValidStr(pszStr,szGPrice,'/');
  234. strcpy(pszStr,szTemp);
  235. szTemp = tTxtAnalysis.GetValidStr(pszStr,szGStock,'/');
  236. strcpy(pszStr,szTemp);
  237. szTemp = new CHAR[15];
  238. szTemp[14]=NULL;
  239. RECT tRect;
  240. SIZE tSize;
  241. ZeroMemory(&tRect,sizeof(RECT)); //
  242. tSize = g_xMainWnd.GetStrLength(NULL,NULL,szGName);
  243. tRect.top = 0;
  244. tRect.left = 0; // List Button 狼 版快, Left  = 0;
  245. tRect.right = tSize.cx;
  246. tRect.bottom = tSize.cy;
  247. szParam = new CHAR[35];
  248. ZeroMemory(szParam,35);
  249. strcpy(szParam,szGName); // 烙矫 Parameter甫 酒捞袍捞抚苞 鞍捞 贸府窃.
  250. // Parameter...
  251. if(nSubMenuCount>0)
  252. { // Sub Menu 啊 粮犁 窍绰 版快
  253. // 皋春啊 粮犁窍搁 灌篮 畴尔祸
  254. sprintf(szTemp,"%-14s",szGName);
  255. m_xKindBtn.AddButton(szTemp,tRect,i,szParam,RGB(255,255,0),RGB(255,0,0)); // Add Button to class
  256. }
  257. else
  258. { // Sub Menu 啊 粮犁 窍瘤 臼绰 版快
  259. // 皋春啊 粮犁窍瘤 臼栏搁 绢滴款 畴尔祸
  260. sprintf(szTemp,"%-14s",szGName);
  261. m_xKindBtn.AddButton(szTemp,tRect,i,szParam,RGB(180,180,0),RGB(255,0,0)); // Add Button to class
  262. }
  263. // m_xKindBtn
  264. delete[] szGName;
  265. delete[] szGSubMenu;
  266. delete[] szGPrice;
  267. delete[] szGStock;
  268. delete[] szParam;
  269. }
  270. m_nIsReadyToDisplay = 1; // Kinds List啊 汲沥登菌澜阑 舅覆
  271. //
  272. delete[] pszStr;
  273. return TRUE;
  274. }
  275. BOOL CStoreWnd::SetBuyItemLst(CHAR* Msg,INT Count)
  276. {
  277. CNPCTxtAnalysis tTxtAnalysis; // 窜瘤 GetValidStr窃荐甫 荤侩窍扁 困秦辑..
  278. CHAR* szLastMsg = NULL;
  279. CHAR szDetailitem[MAX_PATH];
  280. m_xItemLstBtn.ReleaseButtons();
  281. m_xItems.ClearAllNodes();
  282. // 历厘等 虐&单捞磐 朝府扁
  283. m_nCurrentItemTop = 0;
  284. ZeroMemory(szDetailitem,MAX_PATH);
  285. m_nMaxItemLine = Count;
  286. INT nCurrLen =0;
  287. for ( INT nLoop = 0; nLoop < Count; nLoop++ )
  288. {
  289. szLastMsg = strchr(Msg+nCurrLen, '/');
  290. if ( szLastMsg )
  291. {
  292. CHAR* szParam;
  293. CHAR bCurrentData[MAX_PATH];
  294. CLIENTITEMRCD* pxClItem;
  295. pxClItem = new CLIENTITEMRCD;
  296. memcpy(szDetailitem, Msg + nCurrLen, strlen(Msg)-strlen(szLastMsg));
  297. nCurrLen = nCurrLen + (int)(szLastMsg - Msg)+1;
  298. fnDecode6BitBuf(szDetailitem, (char*)pxClItem, sizeof(CLIENTITEMRCD));
  299. ZeroMemory(bCurrentData,MAX_PATH);
  300. // szTemp  = new CHAR[50];
  301. CHAR szTemp1[50]; // 啊拜
  302. CHAR szTemp2[50]; // 扁鸥
  303. ZeroMemory(szTemp1,50);
  304. ZeroMemory(szTemp2,50);
  305. m_xItems.AddNode(pxClItem);
  306. // szMakeIndex[12]; // A:公扁 B:渴 C:馆瘤,迫骂,格吧捞 G:扁鸥
  307. sprintf(szTemp1,"%d傈",pxClItem->stStdItem.nPrice);
  308. /* switch(pxClItem->szMakeIndex[0])
  309. {
  310. case 'G': // 扁鸥
  311. case 'g':
  312. {
  313. switch(pxClItem->stStdItem.bStdMode)
  314. {
  315. case 0: // 拱距幅
  316. case 1: // 富赴绊扁
  317. case 2: // 林冈逛
  318. case 3: // 漂荐茄拱距 or 阿辆傈辑甸
  319. case 4: // 阿辆 氓甸
  320. case 7: // 弓澜揪府令
  321. case 9: // 距力甸
  322. break;
  323. case 5: // 刀啊风
  324. sprintf(szTemp2,"%d",pxClItem->nDura);
  325. break;
  326. case 8: // 冈瘤 给窍绰 绊扁
  327. sprintf(szTemp2,"前龙 %d",pxClItem->nDura);
  328. break;
  329. case 10: // 堡籍
  330. sprintf(szTemp2,"鉴档 %d",pxClItem->nDura);
  331. break;
  332. case 6: // 榷阂,檬
  333. default: // 扁鸥
  334. sprintf(szTemp2,"郴备 %d",pxClItem->nDura);
  335. break;
  336. }
  337. break;
  338. }
  339. default:
  340. sprintf(szTemp2,"郴备 %d",pxClItem->nDura);
  341. break;
  342. }
  343. */
  344. RECT tRect;
  345. SIZE tSize;
  346. ZeroMemory(&tRect,sizeof(RECT));
  347. tSize = g_xMainWnd.GetStrLength(NULL,NULL,szTemp1);
  348. tRect.top = 0;
  349. tRect.left = 0; // List Button 狼 版快, Left  = 0;
  350. tRect.right = m_xItemRect.right - m_xItemRect.left; //
  351. tRect.bottom = tSize.cy;
  352. // Parameter ...
  353. szParam = new CHAR[35];
  354. ZeroMemory(szParam,35);
  355. // strcpy(szParam,pxClItem->szMakeIndex); // 烙矫 Parameter甫 酒捞袍捞抚苞 鞍捞 贸府窃.
  356. // Dark Yellow
  357. m_xItemLstBtn.AddButton(szTemp1,szTemp2,tRect,nLoop,szParam,RGB(180,180,0),RGB(255,0,0)); // Add Button to class
  358. delete[] szParam;
  359. }
  360. }
  361. m_nIsReadyToDisplay=m_nIsReadyToDisplay|2; // Item List 汲沥捞 夌澜阑 舅覆
  362. //
  363. return TRUE;
  364. }
  365. VOID CStoreWnd::OnScrollDown()
  366. {
  367. POINT tPos;
  368. tPos = g_xGameProc.m_ptMousePos;
  369. if(IsInRect(tPos,m_xKindRect))
  370. {
  371. m_nCurrentKindTop=m_nCurrentKindTop > 0 ? m_nCurrentKindTop - 1: 0;
  372. }
  373. if(IsInRect(tPos,m_xItemRect))
  374. {
  375. m_nCurrentItemTop=m_nCurrentItemTop>0 ? m_nCurrentItemTop - 1 : 0;
  376. }
  377. }
  378. VOID CStoreWnd::OnScrollUp()
  379. {
  380. POINT tPos;
  381. tPos = g_xGameProc.m_ptMousePos;
  382. if(IsInRect(tPos,m_xKindRect))
  383. {
  384. m_nCurrentKindTop=m_nCurrentKindTop < m_nMaxKindLine-1 ? m_nCurrentKindTop + 1: m_nMaxKindLine-1;
  385. }
  386. if(IsInRect(tPos,m_xItemRect))
  387. {
  388. m_nCurrentItemTop=m_nCurrentItemTop < m_nMaxItemLine-1 ? m_nCurrentItemTop + 1 : m_nMaxItemLine-1;
  389. }
  390. }
  391. BOOL CStoreWnd::SetSellKinds(CInventoryWnd* pxInvenWnd,CHAR Kind,INT nStdMode)
  392. {
  393. if(pxInvenWnd!=NULL)
  394. {
  395. }
  396. return FALSE;
  397. }
  398. BOOL CStoreWnd::SetSellItemLst(CInventoryWnd* pxInvenWnd,CHAR Kind,BYTE nStdMode,CHAR bKind)
  399. {
  400. CLIENTITEMRCD* pxItem;
  401. RECT tRect;
  402. SIZE tSize;
  403. CHAR szTemp1[50];
  404. CHAR szTemp2[50];
  405. CHAR szParam[50];
  406. INT nCount=0;
  407. // if(咯包捞 酒聪衬?)
  408. // { // 咯包捞 酒聪搁 吧矾辑 持绢具 茄促.
  409. if(pxInvenWnd!=NULL)
  410. {
  411. for(int i=0 ; i<60; i++)
  412. {
  413. pxItem = &pxInvenWnd->m_stInventoryItem[i].xItem.m_stItemInfo;
  414. // if(bKind==pxItem->szMakeIndex[0])
  415. {
  416. if(bKind!='a' && bKind!='A' && bKind!='b' && bKind!='B')
  417. {
  418. if(nStdMode==pxItem->stStdItem.bStdMode)
  419. { // 扁鸥绰 促矫 吧矾 林绢具 茄促.
  420. m_xItems.AddNode(pxItem);
  421. strcpy(szTemp1,pxItem->stStdItem.szName);
  422. itoa(pxItem->nDura,szTemp2,10);
  423. strcpy(szParam,pxItem->stStdItem.szName);
  424. tSize = g_xMainWnd.GetStrLength(NULL,NULL,szTemp1);
  425. tRect.top = 0;
  426. tRect.left = 0; // List Button 狼 版快, Left  = 0;
  427. tRect.right = m_xItemRect.right - m_xItemRect.left; //
  428. tRect.bottom = tSize.cy;
  429. m_xItemLstBtn.AddButton(szTemp1,szTemp2,tRect,nCount,szParam,RGB(180,180,0),RGB(255,0,0));
  430. nCount++;
  431. }
  432. }
  433. else
  434. {
  435. // 公扁唱 癌渴篮 弊成 持绢档 公包..
  436. m_xItems.AddNode(pxItem);
  437. strcpy(szTemp1,pxItem->stStdItem.szName);
  438. itoa(pxItem->nDura,szTemp2,10);
  439. strcpy(szParam,pxItem->stStdItem.szName);
  440. tSize = g_xMainWnd.GetStrLength(NULL,NULL,szTemp1);
  441. tRect.top = 0;
  442. tRect.left = 0; // List Button 狼 版快, Left  = 0;
  443. tRect.right = m_xItemRect.right - m_xItemRect.left; //
  444. tRect.bottom = tSize.cy;
  445. m_xItemLstBtn.AddButton(szTemp1,szTemp2,tRect,nCount,szParam,RGB(180,180,0),RGB(255,0,0));
  446. nCount++;
  447. }
  448. }
  449. }
  450. }
  451. // }
  452. // else
  453. // { // 咯包 捞搁 付备 持绢档 等促.
  454. // for(int i=0 ; i<60; i++)
  455. // {
  456. // pxItem = &pxInvenWnd->m_stInventoryItem[i].xItem.m_stItemInfo;
  457. // 公扁唱 癌渴篮 弊成 持绢档 公包..
  458. // m_xItems.AddNode(pxItem);
  459. // strcpy(szTemp1,pxItem->stStdItem.szName);
  460. // itoa(pxItem->nDura,szTemp2,10);
  461. // strcpy(szParam,pxItem->stStdItem.szName);
  462. // tSize = g_xMainWnd.GetStrLength(NULL,NULL,szTemp1);
  463. // tRect.top = 0;
  464. // tRect.left = 0; // List Button 狼 版快, Left  = 0;
  465. // tRect.right = m_xItemRect.right - m_xItemRect.left; //
  466. // tRect.bottom = tSize.cy;
  467. //
  468. // m_xItemLstBtn.AddButton(szTemp1,szTemp2,tRect,nCount,szParam,RGB(180,180,0),RGB(255,0,0));
  469. // nCount++;
  470. // }
  471. // }
  472. return FALSE;
  473. }
  474. BOOL CStoreWnd::OnUpdateQueue(VOID)
  475. {
  476. if(m_xPacketQueue.GetCount()>0)
  477. {
  478. LPPACKETMSG lpPacketMsg;
  479. lpPacketMsg =(LPPACKETMSG) m_xPacketQueue.PopQ();
  480. if(lpPacketMsg->stDefMsg.nRecog == m_nNpcID)
  481. {
  482. switch(lpPacketMsg->stDefMsg.wIdent)
  483. {
  484. case SM_SENDGOODSLIST:
  485. {
  486. INT nPos;
  487. CHAR  szDecodeMsg[MAX_PATH*4];
  488. nPos = fnDecode6BitBuf(lpPacketMsg->szEncodeData, szDecodeMsg, sizeof(szDecodeMsg));
  489. SetBuyKinds(szDecodeMsg,lpPacketMsg->stDefMsg.wIdent);
  490. break;
  491. }
  492. case SM_SENDDETAILGOODSLIST:
  493. {
  494. SetBuyItemLst(lpPacketMsg->szEncodeData,(lpPacketMsg->stDefMsg).wSeries);
  495. break;
  496. }
  497. case SM_BUYITEM_FAIL:
  498. {
  499. break;
  500. }
  501. /* default :
  502. {
  503. m_xPacketQueue.PushQ((BYTE*)lpPacketMsg);
  504. return FALSE
  505. }*/
  506. }
  507. }
  508. else
  509. {
  510. // 秦寸 NPC啊 酒丛
  511. // 秦具且巴
  512. // NPC芒阑 摧阑巴
  513. // NPC甫 盎脚 且巴
  514. m_xPacketQueue.PushQ((BYTE*)lpPacketMsg);
  515. return FALSE;
  516. }
  517. delete lpPacketMsg;
  518. return TRUE;
  519. }
  520. return FALSE;
  521. }
  522. VOID CStoreWnd::SendDeTailGoodsList(INT nIndex,CHAR* szItemName)
  523. {
  524. g_xClientSocket.SendGetDetailItem(m_nNpcID, nIndex, szItemName);
  525. }
  526. VOID CStoreWnd::SendButThisITme(CMTxtBtn* tBtn)
  527. {
  528. CHAR szItemName[MAX_PATH];
  529. ZeroMemory(szItemName,MAX_PATH);
  530. m_xItems.MoveCurrentToTop();
  531. for(INT i = 0 ; i<m_xItems.GetCounter();i++)
  532. {
  533. // if(strncmp(m_xItems.GetCurrentData()->szMakeIndex,tBtn->Param,12)==0)
  534. {
  535. // g_xClientSocket.SendBuyItem(m_nNpcID,m_xItems.GetCurrentData()->stStdItem.szName,tBtn->Param); // MOON
  536. return;
  537. }
  538. m_xItems.MoveNextNode();
  539. }
  540. }