📄 interface.cpp
字号:
/******************************************************************************************************************
窃荐疙 : CInterface::ShowBeltItem()
累己磊 :
累己老 :
格利 :
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CInterface::ShowBeltItem()
{
INT nX, nY;
if ( m_bBeltState == _BELT_STATE_UP )
{
m_shBeltHeight += 10;
if ( m_shBeltHeight >= 46 )
{
m_shBeltHeight = 46;
}
}
else if ( m_bBeltState == _BELT_STATE_DOWN )
{
m_shBeltHeight -= 10;
if ( m_shBeltHeight <= 0 )
{
m_shBeltHeight = 0;
m_bBeltState = _BELT_STATE_STAY;
}
}
if ( m_bBeltState != _BELT_STATE_STAY )
{
if ( m_pxInterImg->NewSetIndex(_IMGIDX_BELT) )
{
g_xMainWnd.DrawWithImageForCompClipRgn(275, 457-m_shBeltHeight,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage, _CLIP_WIDTH, 600);
// 骇飘 酒捞袍 弊府扁.
for ( INT nCnt = 0; nCnt < _MAX_BELT_ITEM; nCnt++ )
{
if ( m_xInventoryWnd.m_stBeltItem[nCnt].bSetted )
{
nX = 275 + 8 + nCnt*40;
nY = 411 + 6 + 46 - m_shBeltHeight;
m_xInventoryWnd.m_stBeltItem[nCnt].xItem.DrawItem(nX, nY);
}
}
}
}
}
/******************************************************************************************************************
窃荐疙 : CInterface::ShowGameStatus()
累己磊 :
累己老 :
格利 :
免仿 : BOOL
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CInterface::ShowGameStatus()
{
FLOAT fMyHPRate;
FLOAT fMyMPRate;
FLOAT fMyWetRate;
FLOAT fMyExpRate;
WORD wJobIcon;
WORD wImgNum;
CHAR pszBuff[MAX_PATH];
RECT rcStats;
DWORD dwFntClr;
BYTE bMyJob = g_xGameProc.m_xMyHero.m_bJob;
BYTE bMyLevel= g_xGameProc.m_xMyHero.m_stAbility.bLevel;
WORD wMyAC = g_xGameProc.m_xMyHero.m_stAbility.wAC;
WORD wMyDC = g_xGameProc.m_xMyHero.m_stAbility.wDC;
WORD wMyMC = g_xGameProc.m_xMyHero.m_stAbility.wMC;
WORD wMySC = g_xGameProc.m_xMyHero.m_stAbility.wSC;
BYTE bDay = g_xGameProc.m_bDayState;
WORD wHP = g_xGameProc.m_xMyHero.m_stAbility.wHP;
WORD wMP = g_xGameProc.m_xMyHero.m_stAbility.wMP;
WORD wWet = g_xGameProc.m_xMyHero.m_stAbility.wWeight;
DWORD dwExp = g_xGameProc.m_xMyHero.m_stAbility.dwExp;
BYTE bJob = g_xGameProc.m_xMyHero.m_bJob;
// 窍风狼 惑怕摹(广, 撤, 历翅, 货寒)
switch ( bDay )
{
case _DAYSTATE_DAY:
wImgNum = 130;
break;
case _DAYSTATE_DUSK:
wImgNum = 131;
break;
case _DAYSTATE_NIGHT:
wImgNum = 132;
break;
case _DAYSTATE_DAWN:
wImgNum = 133;
break;
}
if ( m_pxInterImg->NewSetIndex(wImgNum) )
{
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+684, m_rcMain.top+70,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage, _CLIP_WIDTH, 600);
}
// HP, MP嘛扁.
// 厚啦八荤.
if ( wHP )
{
fMyHPRate = (FLOAT)((FLOAT)wHP/(FLOAT)g_xGameProc.m_xMyHero.m_stAbility.wMaxHP);
if ( fMyHPRate > 1.0f )
{
fMyHPRate = 1.0f;
}
}
else
{
fMyHPRate = 0;
}
if ( wMP )
{
fMyMPRate = (FLOAT)((FLOAT)wMP/(FLOAT)g_xGameProc.m_xMyHero.m_stAbility.wMaxMP);
if ( fMyMPRate > 1.0f )
{
fMyMPRate = 1.0f;
}
}
else
{
fMyMPRate = 0;
}
if ( dwExp )
{
fMyExpRate = (FLOAT)((FLOAT)dwExp/(FLOAT)g_xGameProc.m_xMyHero.m_stAbility.dwMaxExp);
if ( fMyExpRate > 1.0f )
{
fMyExpRate = 1.0f;
}
}
else
{
fMyExpRate = 0;
}
if ( wWet )
{
fMyWetRate = (FLOAT)((FLOAT)wWet /(FLOAT)g_xGameProc.m_xMyHero.m_stAbility.wMaxWeight);
if ( fMyWetRate > 1.0f )
{
fMyWetRate = 1.0f;
}
}
else
{
fMyWetRate = 0;
}
if ( m_pxInterImg->NewSetIndex(60) )
{
RECT rcHP = { 0, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight-(m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight*fMyHPRate),
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight };
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+46, m_rcMain.top+34, rcHP, (WORD*)m_pxInterImg->m_pbCurrImage);
}
if ( m_pxInterImg->NewSetIndex(61) )
{
RECT rcMP = { 0, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight-(m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight*fMyMPRate),
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight };
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+104, m_rcMain.top+34, rcMP, (WORD*)m_pxInterImg->m_pbCurrImage);
}
// EXP, WET 嘛扁.
if ( m_pxInterImg->NewSetIndex(63) )
{
RECT rcEXP = { 0, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight-(m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight*fMyExpRate),
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight };
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+76, m_rcMain.top+35, rcEXP, (WORD*)m_pxInterImg->m_pbCurrImage);
}
if ( m_pxInterImg->NewSetIndex(67) )
{
RECT rcWET = { 0, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight-(m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight*fMyWetRate),
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight };
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+211, m_rcMain.top+35, rcWET, (WORD*)m_pxInterImg->m_pbCurrImage);
}
dwFntClr = RGB(225, 225, 0);
// 饭骇嘛6扁.
sprintf(pszBuff, "%d", g_xGameProc.m_xMyHero.m_stAbility.bLevel);
SetRect(&rcStats, 693, 528, 709, 544);
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff, g_xMainWnd.CreateGameFont("泵辑眉", 10, 0, FW_BOLD));
dwFntClr = RGB(255, 255, 200);
// 甘捞抚 棺 谅钎嘛扁.
sprintf(pszBuff, "%s : [%d,%d]", g_xGameProc.m_szMapName, g_xGameProc.m_xMyHero.m_wPosX, g_xGameProc.m_xMyHero.m_wPosY);
SetRect(&rcStats, 219, 584, 379, 599);
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff);
dwFntClr = RGB(255, 200, 50);
// 流诀喊 酒捞能棺 漂己摹 嘛扁.
sprintf(pszBuff, "%d-%d", LOBYTE(wMyAC), HIBYTE(wMyAC));
SetRect(&rcStats, 422, 584, 483, 599);
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff);
SetRect(&rcStats, 520, 584, 581, 599);
switch ( bJob )
{
case _JOB_DOSA:
{
wJobIcon = 66;
wImgNum = 123;
sprintf(pszBuff, "%d-%d", LOBYTE(wMySC), HIBYTE(wMySC));
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff);
}
break;
case _JOB_SULSA:
{
wJobIcon = 65;
wImgNum = 124;
sprintf(pszBuff, "%d-%d", LOBYTE(wMyMC), HIBYTE(wMyMC));
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff);
}
break;
case _JOB_JUNSA:
{
wJobIcon = 64;
wImgNum = 122;
sprintf(pszBuff, "%d-%d", LOBYTE(wMyDC), HIBYTE(wMyDC));
g_xMainWnd.PutsHan(NULL, rcStats, dwFntClr, RGB(0, 0, 0), pszBuff);
}
break;
}
if ( m_pxInterImg->NewSetIndex(wJobIcon) )
{
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+82, m_rcMain.top+71,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage);
}
// AC嘛扁.
if ( m_pxInterImg->NewSetIndex(120) )
{
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+391, m_rcMain.top+136,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage);
}
// DC, MC, SC
if ( m_pxInterImg->NewSetIndex(wImgNum) )
{
g_xMainWnd.DrawWithImageForComp(m_rcMain.left+487, m_rcMain.top+136,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage);
}
}
VOID CInterface::ShowMagicKey()
{
if ( m_bShowKey )
{
INT nCnt;
for ( nCnt = 0; nCnt < 8; nCnt++ )
{
if ( m_pxInterImg->NewSetIndex(70+nCnt) )
{
g_xMainWnd.DrawWithABlendCompDataWithBackBuffer(nCnt*m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth, 0,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shWidth,
m_pxInterImg->m_lpstNewCurrWilImageInfo->shHeight,
(WORD*)m_pxInterImg->m_pbCurrImage, _CLIP_WIDTH, 600);
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 扩档快 包府何盒/////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/******************************************************************************************************************
窃荐疙 : CInterface::GetWindowInMousePos()
累己磊 :
累己老 :
格利 : 付快胶 器牢磐甫 康开救俊 啊瘤绊 乐绰 扩档快府胶飘吝 盖贸澜 扩档快狼 ID甫 府畔茄促.
涝仿 : POINT ptMouse
免仿 :
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
INT CInterface::GetWindowInMousePos(POINT ptMouse)
{
if ( m_xWndOrderList.GetCounter() != 0 )
{
RECT rcWnd;
INT* pnCurrID;
m_xWndOrderList.MoveCurrentToTail();
for ( INT nCnt = m_xWndOrderList.GetCounter()-1; nCnt >= 0 ; nCnt-- )
{
pnCurrID = m_xWndOrderList.GetCurrentData();
switch ( *pnCurrID )
{
case _WND_ID_INVENTORY:
rcWnd = m_xInventoryWnd.GetGameWndRect();
break;
case _WND_ID_STATUS:
rcWnd = m_xStatusWnd.GetGameWndRect();
break;
case _WND_ID_STORE:
rcWnd = m_xStoreWnd.GetGameWndRect();
break;
case _WND_ID_EXCHANGE:
rcWnd = m_xExchangeWnd.GetGameWndRect();
break;
case _WND_ID_GUILDMASTER:
rcWnd = m_xGuildMasterWnd.GetGameWndRect();
break;
case _WND_ID_GUILD:
rcWnd = m_xGuildWnd.GetGameWndRect();
break;
case _WND_ID_GROUP:
rcWnd = m_xGroupWnd.GetGameWndRect();
break;
case _WND_ID_GROUPPOP:
rcWnd = m_xGroupPopWnd.GetGameWndRect();
break;
case _WND_ID_CHATPOP:
rcWnd = m_xChatPopWnd.GetGameWndRect();
break;
case _WND_ID_NPCCHAT: // 侩扁
rcWnd = m_xNPCWnd.GetGameWndRect();
break;
case _WND_ID_QUEST:
rcWnd = m_xQuestWnd.GetGameWndRect();
break;
case _WND_ID_OPTION:
rcWnd = m_xOptionWnd.GetGameWndRect();
break;
case _WND_ID_HORSE:
rcWnd = m_xHorseWnd.GetGameWndRect();
break;
}
if ( PtInRect(&rcWnd, ptMouse) )
{
return *pnCurrID;
}
m_xWndOrderList.MovePreviousNode();
}
}
return -1;
}
/******************************************************************************************************************
窃荐疙 : CInterface::AddWindowToList()
累己磊 :
累己老 :
格利 : 扩档快府胶飘狼 盖 付瘤阜俊 泅犁 涝仿罐篮 酒捞叼啊 nID牢 扩档快甫 眠啊茄促.
涝仿 : INT nID
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CInterface::AddWindowToList(INT nID)
{
m_xWndOrderList.AddNode(nID);
}
/******************************************************************************************************************
窃荐疙 : CInterface::DeleteWindowToList()
累己磊 :
累己老 :
格利 : nID狼 酒捞叼甫 啊柳 扩档快甫 府胶飘惑俊辑 昏力茄促.
涝仿 : INT nID
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
VOID CInterface::DeleteWindowToList(INT nID)
{
if ( m_xWndOrderList.GetCounter() != 0 )
{
m_xWndOrderList.MoveCurrentToTop();
INT* pnCurrID;
for ( INT nCnt = 0; nCnt < m_xWndOrderList.GetCounter(); nCnt++ )
{
pnCurrID = m_xWndOrderList.GetCurrentData();
if ( *pnCurrID == nID )
{
m_xWndOrderList.DeleteCurrentNode();
break;
}
m_xWndOrderList.MoveNextNode();
}
}
}
/******************************************************************************************************************
窃荐疙 : CInterface::WindowActivate()
累己磊 :
累己老 :
格利 : nID牢 扩档快甫 扩档快府胶飘俊 眠啊矫虐芭唱 昏力矫虐哥, 眠啊狼 版快, 扩档快狼 惑怕甫 弥惑困 惑怕肺 技泼茄促.
扩档快啊 虐涝仿阑 罐酒辑 拳搁俊 唱棵锭 龋免窍绰 窃荐捞促.
涝仿 : INT nID
免仿 : VOID
[老磊][荐沥磊] : 荐沥郴侩
*******************************************************************************************************************/
BOOL CInterface::WindowActivate(INT nID)
{
// 货肺款 扩档快俊 器目胶甫 林扁困秦辑 葛电 扩档快狼 器目胶甫 FALSE矫难霖促.
BOOL bRet = FALSE;
AllWindowsFocusOff();
switch ( nID )
{
case _WND_ID_INVENTORY:
{
if ( m_xInventoryWnd.GetGameWndActive() )
{
DeleteWindowToList(_WND_ID_INVENTORY);
m_xInventoryWnd.SetGameWndActive(FALSE);
bRet = FALSE;
}
else
{
AddWindowToList(_WND_ID_INVENTORY);
m_xInventoryWnd.SetGameWndActive(TRUE);
bRet = TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -