In
WndTaskBar.cpp
Search for:
Code:
void CWndTaskBarInterface::OnDraw(C2DRender* p2DRender)
Replace the whole function with:
Code:
void CWndTaskBarInterface::OnDraw(C2DRender* p2DRender)
{
if (IsValidObj(g_pPlayer))
{
CPoint point;
DWORD dwCur = g_tmCurrent;
if (m_GlobalShortcut.IsEmpty() == FALSE)
{
for (int i = 0; i < MAX_SLOT_ITEM; i++)
{
DWORD dwColor = D3DCOLOR_ARGB(15, 20, 0, 200);
CRect Rectskill = wndCtrl[i]->rect;
switch (m_GlobalShortcut.m_dwShortcut)
{
case SHORTCUT_APPLET:
case SHORTCUT_ITEM:
case SHORTCUT_MOTION:
p2DRender->RenderFillRect(Rectskill, dwColor);
p2DRender->RenderFillRect(Rectskill, dwColor);
break;
case SHORTCUT_SKILL:
if (m_GlobalShortcut.m_dwType == 0)
{
DWORD dwSkill = g_pPlayer->GetSkill(0, m_GlobalShortcut.m_dwId)->dwSkill;
DWORD dwComboStyleSrc = prj.GetSkillProp(dwSkill)->dwComboStyle;
if (dwComboStyleSrc == CT_STEP || dwComboStyleSrc == CT_GENERAL)
p2DRender->RenderFillRect(Rectskill, dwColor);
p2DRender->RenderFillRect(Rectskill, dwColor);
}
else
p2DRender->RenderFillRect(Rectskill, dwColor);
break;
case SHORTCUT_SKILLFUN:
p2DRender->RenderFillRect(Rectskill, dwColor);
break;
}
}
}
for (int i = 0; i < MAX_SLOT_ITEM; i++)
{
if (!m_bCtrlVisible[i])
continue;
point = CPoint(wndCtrl[i]->rect.left, wndCtrl[i]->rect.top);
LPSHORTCUT lpShortcut = m_pSlotItem[i];
if (!lpShortcut->IsEmpty())
{
if (lpShortcut->m_pTexture)
p2DRender->RenderTexture(point, lpShortcut->m_pTexture);
if (lpShortcut->m_dwShortcut == SHORTCUT_ITEM)
{
CItemBase* pItemBase = g_pPlayer->GetItemId(lpShortcut->m_dwId);
CItemElem* pItemElem = (CItemElem*)pItemBase;
if (pItemElem)
{
if (pItemElem->GetProp()->dwPackMax > 1)
{
CD3DFont* pOldFont = p2DRender->GetFont();
p2DRender->SetFont(CWndBase::m_Theme.m_pFontWndNewTitle);
TCHAR szTemp[32];
_stprintf(szTemp, "%d", g_pPlayer ? g_pPlayer->m_Inventory.GetItemCount(pItemElem->m_dwItemId) : 0);
CSize size = m_p2DRender->m_pFont->GetTextExtent(szTemp);
p2DRender->TextOut(point.x + 31 - size.cx, point.y + 31 - size.cy + 4, szTemp, 0xFF85FF8A);
p2DRender->SetFont(pOldFont);
//p2DRender->TextOut(point.x + 31 - size.cx, point.y + 31 - size.cy, szTemp, 0xAA3364AC);
}
DWORD dwGroup = g_pPlayer->m_cooltimeMgr.GetGroup(pItemElem->GetProp());
if (dwGroup)
{
DWORD dwEnd = g_pPlayer->m_cooltimeMgr.GetTime(dwGroup); // AIº¥Æ® A¾·a ½A°¢
if (dwEnd != 0 && dwEnd > dwCur)
{
DWORD dwBase = g_pPlayer->m_cooltimeMgr.GetBase(dwGroup); // AIº¥Æ® ½AAU ½A°¢
RenderRadar(p2DRender, point, dwCur - dwBase, dwEnd - dwBase);
}
}
}
else
{
ItemProp* pItemProp = prj.GetItemProp(lpShortcut->m_dwItemId);
if (pItemProp && pItemProp->dwPackMax > 1) // º´CO °¡´ECN ¾ÆAIAUAI¸e?
{
DWORD dwId = g_pPlayer->m_Inventory.Find(lpShortcut->m_dwItemId);
if (dwId != NULL_ID) // °°Aº A¾·uAC ¾ÆAIAUAI AO´U¸e?
{
lpShortcut->m_dwId = dwId;
g_DPlay.SendAddAppletTaskBar(i, lpShortcut);
}
else
{
lpShortcut->Empty();
g_DPlay.SendRemoveAppletTaskBar(i);
}
}
else
{
lpShortcut->Empty();
g_DPlay.SendRemoveAppletTaskBar(i);
}
}
}
else if (lpShortcut->m_dwShortcut == SHORTCUT_APPLET)
{
AppletFunc* pAppletFunc = g_WndMng.GetAppletFunc(lpShortcut->m_dwId);
if (pAppletFunc && pAppletFunc->m_cHotkey)
{
CPoint ptHotkey(point.x + 8, point.y - 9);
DRAW_HOTKEY(p2DRender, ptHotkey, pAppletFunc->m_cHotkey);
}
}
else if (lpShortcut->m_dwShortcut == SHORTCUT_SKILL && lpShortcut->m_dwType != 2) //±Ø´U½ºA³Aº AðA¸AO °u·A Render¸| CIAo ¾E´A´U.
{
RenderCollTime(point, lpShortcut->m_dwId, p2DRender);
}
#if __VER >= 12 // __LORD
else if (lpShortcut->m_dwShortcut == SHORTCUT_LORDSKILL)
{
RenderLordCollTime(point, lpShortcut->m_dwId, p2DRender);
}
#endif
else if (lpShortcut->m_dwShortcut == SHORTCUT_MOTION)
{
if (lpShortcut->m_dwId == MOT_BASE_ESCAPE)
{
ItemProp* pItem = prj.GetItemProp(g_AddSMMode.dwSMItemID[SM_ESCAPE]);
if (pItem && g_pPlayer)
{
CTimeSpan ct(g_pPlayer->m_dwSMTime[SM_ESCAPE]);
if (ct.GetTotalSeconds())
{
point.y -= 1;
point.x += 1;
RenderRadar(m_p2DRender, point, (DWORD)(pItem->dwCircleTime - ct.GetTotalSeconds()), pItem->dwCircleTime);
}
}
}
}
else if (lpShortcut->m_dwShortcut == SHORTCUT_SKILLFUN)
{
CWndNewSkillSlot* m_SkillSL = (CWndNewSkillSlot*)g_WndMng.GetWndBase(APP_SLOT);
if (clock() < m_SkillSL->m_tmCoolDown || m_SkillSL->m_bStopCoolDown)
{
// float fPercent = (float)dwValue / (float)dwDivisor;
// int nDrawIndex = (fPercent * 127);
// dwvalue * 127 / dwValue m_SkillSL->m_tmStartCoolDown
// m_SkillSL->m_tmCoolDown (18) * 127
RenderRadar(m_p2DRender, point, DWORD(m_SkillSL->m_tmCoolDown), m_SkillSL->m_tmStartCoolDown);
}
}
}
}
}
for (int i = 0; i < 10; i++)
{
if (!m_bCtrlVisible[i])
continue;
if (slot1[i] != NULL)
{
slot1[i]->Render(p2DRender, CPoint(wndCtrl[i]->rect.left - 3, wndCtrl[i]->rect.top - 3));
}
if ((m_USEFIRE[i] != NULL) && (!m_pSlotItem[i]->IsEmpty()))
{
m_USEFIRE[i]->Render(p2DRender, CPoint(wndCtrl[i]->rect.left, wndCtrl[i]->rect.top), m_USEFireALPHA[i]);
}
}
}
#if __VER >= 12 // __LORD
void CWndTaskBarInterface::RenderLordCollTime( CPoint pt, DWORD dwSkillId, C2DRender* p2DRender )
{
CCLord* pLord = CCLord::Instance();
CLordSkillComponentExecutable* pComponent = pLord->GetSkills()->GetSkill(dwSkillId);
if(!pComponent) return;
DWORD dwDelay = 0;
if(pComponent->GetTick() > 0)
RenderRadar( p2DRender, pt, pComponent->GetCooltime() - pComponent->GetTick(), pComponent->GetCooltime() );
}
#endif
In
WndTaskBar.h
Search for:
Code:
static bool IsLock(){ return m_bLock; }
Add under:
Code:
#if __VER >= 12 // __LORD
void RenderLordCollTime(CPoint pt, DWORD dwSkillId, C2DRender* p2DRender);
#endif