📄 item.cpp
字号:
/******************************************************************************************************************
葛碘疙:
累己磊:
累己老:
[老磊][荐沥磊] : 荐沥 郴侩
*******************************************************************************************************************/
#include "StdAfx.h"
CItem::CItem()
{
m_shCellNum = 0;
m_bAttr = 0;
ZeroMemory(&m_stItemInfo, sizeof(CLIENTITEMRCD));
}
CItem::~CItem()
{
}
BOOL CItem::SetItem(CLIENTITEMRCD stItemInfo, SHORT shInventoryNum)
{
m_stItemInfo = stItemInfo;
m_shCellNum = shInventoryNum;
/*
a:公扁
b:渴
c:馆瘤 迫骂 格吧捞
g:扁鸥
*/
/*
#define _U_DRESS 0
#define _U_WEAPON 1
#define _U_RIGHTHAND 2
#define _U_NECKLACE 3
#define _U_HELMET 4
#define _U_ARMRINGL 5
#define _U_ARMRINGR 6
#define _U_RINGL 7
#define _U_RINGR 8
#define _U_CHARM 9
#define _U_UNEQUIP 100
*/
switch ( m_stItemInfo.stStdItem.bStdMode )
{
// 公扁.
case 5:
case 6:
m_bAttr = _U_WEAPON;
break;
// 渴.
case 10:
case 11:
m_bAttr = _U_DRESS;
break;
case 15:
m_bAttr = _U_HELMET;
break;
case 19:
case 20:
case 21:
m_bAttr = _U_NECKLACE;
break;
case 22:
case 23:
m_bAttr = _U_RINGL;
break;
case 24:
case 26:
m_bAttr = _U_ARMRINGL;
break;
// 檬, 榷阂.
case 30:
m_bAttr = _U_RIGHTHAND;
break;
// 刀啊风, 何利.
case 25:
m_bAttr = _U_ARMRINGL;
break;
}
return TRUE;
}
BOOL CItem::DrawItem(INT nX, INT nY, BYTE bItemType)
{
CWHWilImageData* pxItemImg;
BOOL bDrawItem = FALSE;
switch ( bItemType )
{
case _ITEM_TYPE_INVENTORY:
pxItemImg = &g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_INVENTORY];
bDrawItem = pxItemImg->NewSetIndex(m_stItemInfo.stStdItem.wLooks);
if ( bDrawItem )
{
nX = nX+_INVENTORY_CELL_WIDTH/2-pxItemImg->m_lpstNewCurrWilImageInfo->shWidth/2;
nY = nY+_INVENTORY_CELL_HEIGHT/2-pxItemImg->m_lpstNewCurrWilImageInfo->shHeight/2;
}
break;
case _ITEM_TYPE_EQUIP:
pxItemImg = &g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_EQUIP];
bDrawItem = pxItemImg->NewSetIndex(m_stItemInfo.stStdItem.wLooks);
if ( bDrawItem )
{
nX += g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_EQUIP].m_lpstNewCurrWilImageInfo->shPX;
nY += g_xGameProc.m_xImage.m_xImageList[_IMAGE_ITEM_EQUIP].m_lpstNewCurrWilImageInfo->shPY;
}
break;
}
if ( bDrawItem )
{
g_xMainWnd.DrawWithImageForCompClipRgn(
nX,
nY,
pxItemImg->m_lpstNewCurrWilImageInfo->shWidth,
pxItemImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)pxItemImg->m_pbCurrImage, _CLIP_WIDTH, 600);
}
return TRUE;
}
VOID CItem::ShowItemStatus(INT nX, INT nY)
{
CHAR szLineBuf[3][MAX_PATH];
CHAR szName[MAX_PATH];
SIZE sizeLen;
BOOL bUseAble = TRUE;
const INT nLineGap = 14;
ZeroMemory(szName, MAX_PATH);
ZeroMemory(szLineBuf, 3*MAX_PATH);
if ( m_stItemInfo.stStdItem.szName )
{
switch ( m_stItemInfo.stStdItem.bStdMode )
{
// 巢磊渴, 咯磊渴.
case 10:
case 11:
{
bUseAble = FALSE;
// 霉掳临.
if ( m_stItemInfo.stStdItem.szName[20] )
g_xMainWnd.StringPlus(szName, &m_stItemInfo.stStdItem.szName[20], " ", &m_stItemInfo.stStdItem.szName[0], "");
else
strcpy(szName, m_stItemInfo.stStdItem.szName);
g_xMainWnd.PutsHan(NULL, nX, nY, RGB(250, 250, 0), RGB(0, 0, 0), szName);
sizeLen = g_xMainWnd.GetStrLength(NULL, NULL, szName);
sprintf(szLineBuf[0], " 公霸%d 郴备%d/%d", (m_stItemInfo.stStdItem.bWeight), (m_stItemInfo.nDura/1000), (m_stItemInfo.nDuraMax)/1000);
g_xMainWnd.PutsHan(NULL, nX+sizeLen.cx, nY, RGB(250, 250, 250), RGB(0, 0, 0), szLineBuf[0]);
// 笛掳临.
if ( m_stItemInfo.stStdItem.wAC > 0 )
sprintf(&szLineBuf[1][strlen(szLineBuf[1])], "规绢%d-%d ", LOBYTE(m_stItemInfo.stStdItem.wAC), HIBYTE(m_stItemInfo.stStdItem.wAC));
if ( m_stItemInfo.stStdItem.wMAC > 0 )
sprintf(&szLineBuf[1][strlen(szLineBuf[1])], "付亲%d-%d ", LOBYTE(m_stItemInfo.stStdItem.wMAC), HIBYTE(m_stItemInfo.stStdItem.wMAC));
if ( m_stItemInfo.stStdItem.wDC > 0 )
sprintf(&szLineBuf[1][strlen(szLineBuf[1])], "颇鲍%d-%d ", LOBYTE(m_stItemInfo.stStdItem.wDC), HIBYTE(m_stItemInfo.stStdItem.wDC));
if ( m_stItemInfo.stStdItem.wMC > 0 )
sprintf(&szLineBuf[1][strlen(szLineBuf[1])], "付过%d-%d ", LOBYTE(m_stItemInfo.stStdItem.wMC), HIBYTE(m_stItemInfo.stStdItem.wMC));
if ( m_stItemInfo.stStdItem.wSC > 0 )
sprintf(&szLineBuf[1][strlen(szLineBuf[1])], "档仿%d-%d ", LOBYTE(m_stItemInfo.stStdItem.wSC), HIBYTE(m_stItemInfo.stStdItem.wSC));
g_xMainWnd.PutsHan(NULL, nX, nY+nLineGap, RGB(250, 250, 250), RGB(0, 0, 0), szLineBuf[1]);
// 技掳临.
switch ( m_stItemInfo.stStdItem.bNeed )
{
case 0:
{
if ( g_xGameProc.m_xMyHero.m_stAbility.bLevel >= m_stItemInfo.stStdItem.bNeedLevel )
bUseAble = TRUE;
sprintf(&szLineBuf[2][strlen(szLineBuf[2])], "鞘夸饭骇%d ", m_stItemInfo.stStdItem.bNeedLevel);
}
break;
case 1:
{
if ( HIBYTE(g_xGameProc.m_xMyHero.m_stAbility.wDC) >= m_stItemInfo.stStdItem.bNeedLevel )
bUseAble = TRUE;
sprintf(&szLineBuf[2][strlen(szLineBuf[2])], "鞘夸颇鲍仿%d ", m_stItemInfo.stStdItem.bNeedLevel);
}
break;
case 2:
{
if ( HIBYTE(g_xGameProc.m_xMyHero.m_stAbility.wMC) >= m_stItemInfo.stStdItem.bNeedLevel )
bUseAble = TRUE;
sprintf(&szLineBuf[2][strlen(szLineBuf[2])], "鞘夸付过仿%d ", m_stItemInfo.stStdItem.bNeedLevel);
}
break;
case 3:
{
if ( HIBYTE(g_xGameProc.m_xMyHero.m_stAbility.wSC) >= m_stItemInfo.stStdItem.bNeedLevel )
bUseAble = TRUE;
sprintf(&szLineBuf[2][strlen(szLineBuf[2])], "鞘夸档仿%d ", m_stItemInfo.stStdItem.bNeedLevel);
}
break;
}
if ( bUseAble )
g_xMainWnd.PutsHan(NULL, nX, nY+nLineGap*2, RGB(250, 250, 250), RGB(0, 0, 0), szLineBuf[2]);
else
g_xMainWnd.PutsHan(NULL, nX, nY+nLineGap*2, RGB(250, 0, 0), RGB(0, 0, 0), szLineBuf[2]);
}
break;
// 公扁.
case 5:
case 6:
{
bUseAble = FALSE;
// 霉掳临.
if ( (m_stItemInfo.stStdItem.bNeedIdentify & 0X01) != 0 )
{
if ( m_stItemInfo.stStdItem.szName[20] )
g_xMainWnd.StringPlus(szName, "(*)", &m_stItemInfo.stStdItem.szName[20], " ", &m_stItemInfo.stStdItem.szName[0], "");
else
strcpy(szName, m_stItemInfo.stStdItem.szName);
}
else
{
if ( m_stItemInfo.stStdItem.szName[20] )
g_xMainWnd.StringPlus(szName, &m_stItemInfo.stStdItem.szName[20], " ", &m_stItemInfo.stStdItem.szName[0], "");
else
strcpy(szName, m_stItemInfo.stStdItem.szName);
}
g_xMainWnd.PutsHan(NULL, nX, nY, RGB(250, 250, 0), RGB(0, 0, 0), szName);
sizeLen = g_xMainWnd.GetStrLength(NULL, NULL, szName);
sprintf(szLineBuf[0], " 公霸%d 郴备%d/%d", (m_stItemInfo.stStdItem.bWeight), (m_stItemInfo.nDura/1000), (m_stItemInfo.nDuraMax)/1000);
g_xMainWnd.PutsHan(NULL, nX+sizeLen.cx, nY, RGB(250, 250, 250), RGB(0, 0, 0), szLineBuf[0]);
// 笛掳临.
if ( m_stItemInfo.stStdItem.wDC > 0 )
sprintf(&szLineBuf[1][strlen(szLineBuf[1])], "颇鲍%d-%d ", LOBYTE(m_stItemInfo.stStdItem.wDC), HIBYTE(m_stItemInfo.stStdItem.wDC));
if ( m_stItemInfo.stStdItem.wMC > 0 )
sprintf(&szLineBuf[1][strlen(szLineBuf[1])], "付过%d-%d ", LOBYTE(m_stItemInfo.stStdItem.wMC), HIBYTE(m_stItemInfo.stStdItem.wMC));
if ( m_stItemInfo.stStdItem.wSC > 0 )
sprintf(&szLineBuf[1][strlen(szLineBuf[1])], "档仿%d-%d ", LOBYTE(m_stItemInfo.stStdItem.wSC), HIBYTE(m_stItemInfo.stStdItem.wSC));
if ( m_stItemInfo.stStdItem.sSpecialPower > 0 )
sprintf(&szLineBuf[1][strlen(szLineBuf[1])], "碍档%d ", m_stItemInfo.stStdItem.sSpecialPower);
g_xMainWnd.PutsHan(NULL, nX, nY+nLineGap, RGB(250, 250, 250), RGB(0, 0, 0), szLineBuf[1]);
// 技掳临.
if ( HIBYTE(m_stItemInfo.stStdItem.wAC) > 0 )
sprintf(&szLineBuf[2][strlen(szLineBuf[2])], "沥犬+%d ", HIBYTE(m_stItemInfo.stStdItem.wAC));
if ( HIBYTE(m_stItemInfo.stStdItem.wMAC) > 0 )
{
if ( HIBYTE(m_stItemInfo.stStdItem.wMAC) > 10 )
sprintf(&szLineBuf[2][strlen(szLineBuf[2])], "傍拜加档+%d ", HIBYTE(m_stItemInfo.stStdItem.wMAC)-10);
else
sprintf(&szLineBuf[2][strlen(szLineBuf[2])], "傍拜加档-%d ", HIBYTE(m_stItemInfo.stStdItem.wMAC));
}
if ( LOBYTE(m_stItemInfo.stStdItem.wAC) > 0 )
sprintf(&szLineBuf[2][strlen(szLineBuf[2])], "青款+%d ", LOBYTE(m_stItemInfo.stStdItem.wAC));
if ( LOBYTE(m_stItemInfo.stStdItem.wMAC) > 0 )
sprintf(&szLineBuf[2][strlen(szLineBuf[2])], "历林+%d ", LOBYTE(m_stItemInfo.stStdItem.wMAC));
switch ( m_stItemInfo.stStdItem.bNeed )
{
case 0:
{
if ( g_xGameProc.m_xMyHero.m_stAbility.bLevel >= m_stItemInfo.stStdItem.bNeedLevel )
bUseAble = TRUE;
sprintf(&szLineBuf[2][strlen(szLineBuf[2])], "鞘夸饭骇%d ", m_stItemInfo.stStdItem.bNeedLevel);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -