Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Flyff > Flyff Private Server
You last visited: Today at 11:30

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Cooldown animation for skill missing

Discussion on Cooldown animation for skill missing within the Flyff Private Server forum part of the Flyff category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2018
Posts: 1
Received Thanks: 0
Cooldown animation for skill missing

Hi im new and i just converted my version15 theme to v19 theme and its working great so far now the problem is whenever i use skills i cant see the cooldown thing in my v19 taskbar but i can see the cooldown time. I know someone from here can help us.
cansasboy is offline  
Old 12/03/2018, 11:39   #2
 
elite*gold: 0
Join Date: Aug 2010
Posts: 67
Received Thanks: 42
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
Knusper02 is offline  
Reply


Similar Threads Similar Threads
Missing skill cooldown
02/14/2017 - Metin2 Private Server - 3 Replies
Hello. When I start client with metin2client.exe everything works fine. But if I start client with Patcher, there is no "|" symbol, when you're writing in chat and also skill cooldown is missing. Don't you know, how to solve this error? syserr: 0212 15:46:02527 :: Traceback (most recent call last):
Missing MAP Missing skill 2M DK TzPhQy BOT v2.x & 1.8 (Exp)
01/19/2010 - Dekaron - 8 Replies
Missing MAP Missing skill 2M DK TzPhQy BOT v2.x & 1.8 (Exp) :rtfm:
How to search No Skill Cooldown/No Pot Cooldown??
04/19/2009 - Cabal Online - 1 Replies
I cant find out how to search no skill cooldown and no pot cooldown with UCE. plz tell me how to do it.



All times are GMT +1. The time now is 11:33.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.