Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Flyff > Flyff Private Server
You last visited: Today at 10:27

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

Advertisement



New Exchanger v19

Discussion on New Exchanger v19 within the Flyff Private Server forum part of the Flyff category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2019
Posts: 130
Received Thanks: 3
New Exchanger v19

I was wondering where to fix the scroll bar in the NEW EXCHANGER V19



My WndField.cpp
Code:
void CWndDialogEvent::SetDescription(CHAR* szChar)
{
	//Set List
	CRect rect;
	LPWNDCTRL lpWndCtrl;
#ifdef __NEW_EXCHANGE_V19

#else
	CWndListBox* pWndList = (CWndListBox*)GetDlgItem(WIDC_LISTBOX1);
	lpWndCtrl = GetWndCtrl(WIDC_LISTBOX1);
	rect = lpWndCtrl->rect;

	for (int i = 0; i < m_nListCount; i++)
	{
		pWndList->AddString(prj.GetText(m_nVecList[i]));
}
#endif

	//Set Description
	m_nDescList = prj.m_Exchange.GetDescId(m_nMMI);
	m_nDescCount = m_nDescList.size();
	if (!m_nDescCount)
		return;

	if (m_nDescCount == 1)
	{
		CWndButton* pButton = (CWndButton*)GetDlgItem(WIDC_BUTTON1);
		pButton->SetVisible(FALSE);
		pButton->EnableWindow(FALSE);
	}

	CWndText* pText = (CWndText*)GetDlgItem(WIDC_TEXT1);
	m_nCurrentPage = 0;
	pText->m_string.AddParsingString(prj.GetText(m_nDescList[m_nCurrentPage]));
	pText->ResetString();

	//Size Control
#ifndef __NEW_EXCHANGE_V19
	if (m_nListCount <= MAX_LIST_COUNT)
	{
		int nListBoxBottom = 0;
		int nListBoxHeight = 0;
		int nButtonHeight = 0;
		//ListBox
		rect.bottom = rect.top + m_nListCount * m_nGap + 10;
		nListBoxBottom = rect.bottom;
		nListBoxHeight = rect.bottom - rect.top;
		//¿µ¾î ¶§¹®¿¡ â Å©±â ´ÃÀÓ
		rect.right += 80;
		pWndList->SetWndRect(rect);
		//Window
		rect = GetWindowRect(TRUE);
		lpWndCtrl = GetWndCtrl(WIDC_TEXT1);
		CRect rectText = lpWndCtrl->rect;
		rect.bottom = rect.top + nListBoxHeight + (rectText.bottom - rectText.top) + 80;
		SetWndRect(rect);
		//Button
		CWndButton* pWndButton = (CWndButton*)GetDlgItem(WIDC_OK);
		lpWndCtrl = GetWndCtrl(WIDC_OK);
		rect = lpWndCtrl->rect;
		nButtonHeight = rect.bottom - rect.top;
		rect.top = nListBoxBottom + 8;
		rect.bottom = rect.top + nButtonHeight;
		//¿µ¾î ¶§¹®¿¡ â Å©±â ´ÃÀÓ
		rect.left += 40;
		rect.right += 40;
		pWndButton->SetWndRect(rect);

		pWndButton = (CWndButton*)GetDlgItem(WIDC_CANCEL);
		lpWndCtrl = GetWndCtrl(WIDC_CANCEL);
		rect = lpWndCtrl->rect;
		nButtonHeight = rect.bottom - rect.top;
		rect.top = nListBoxBottom + 8;
		rect.bottom = rect.top + nButtonHeight;
		//¿µ¾î ¶§¹®¿¡ â Å©±â ´ÃÀÓ
		rect.left += 40;
		rect.right += 40;
		pWndButton->SetWndRect(rect);
	}
#endif

	//¿µ¾î ¶§¹®¿¡ â Å©±â ´ÃÀÓ
	//Window
	rect = GetWindowRect(TRUE);
	rect.right += 80;
	SetWndRect(rect);

	//Button
	CWndButton* pWndButton = (CWndButton*)GetDlgItem(WIDC_BUTTON1);
	lpWndCtrl = GetWndCtrl(WIDC_BUTTON1);
	rect = lpWndCtrl->rect;
	rect.left += 80;
	rect.right += 80;
	pWndButton->SetWndRect(rect);

	//Text
	CWndText* pWndText = (CWndText*)GetDlgItem(WIDC_TEXT1);
	lpWndCtrl = GetWndCtrl(WIDC_TEXT1);
	rect = lpWndCtrl->rect;
	rect.right += 80;
	pWndText->SetWndRect(rect);
}
WndControl.cpp
Code:
void CWndListBox::OnDraw(C2DRender* p2DRender)
#ifdef __NEW_EXCHANGE_V19

		if (pWnd->GetWndId() == APP_DIALOG_EVENT)
		{
			m_nFontHeight = 35;
			int nGapX = 40;
			CPoint pt(10, 5);
			//pt.y -= m_nFontHeight * m_wndScrollBar.GetScrollPos();
			CExchange::PSETLIST pSet = prj.m_Exchange.FindExchange(((CWndDialogEvent*)pWnd)->m_nMMI);
			CTexture *pArrow = CWndBase::m_textureMng.AddTexture(p2DRender->m_pd3dDevice, MakePath("Theme\\", ::GetLanguage(), "ExchangeArrow.tga"), 0xFFFF0000);
			if (!pSet)
				return;
			unsigned nPos = m_wndScrollBar.GetScrollPos();
			unsigned nEnd = nPos + 7;
			if (nEnd > pSet->vecSet.size())
				nEnd = pSet->vecSet.size();
			if (clock() > m_clkALPHADelay)
			{
				m_nALPHAPos++;
				m_clkALPHADelay = clock() + SEC(2);
				if (m_nALPHAPos < 0)
					m_nALPHAPos = 0;
			}
			for (unsigned i = nPos; i < nEnd; ++i)
			{
				/*if( pt.y < 0 )
				{
					pt.y += m_nFontHeight;
					continue;
				}*/
				if (pt.y > GetWndRect().Height())
					break;
				if (i == m_nCurSelect)
				{
					CRect DrawRect = CRect(0, pt.y + 2, 434, pt.y + 34);
					p2DRender->RenderFillRect(DrawRect, 0xFF022202);
					p2DRender->RenderRect(DrawRect, 0xFF077707);
				}
				for (unsigned j = 0; j < pSet->vecSet[i].vecCondItem.size(); j++)
				{
					ItemProp *pPropItem = prj.GetItemProp(pSet->vecSet[i].vecCondItem[j].dwItemId);
					if (pPropItem)
					{
						CTexture *pTex = CWndBase::m_textureMng.AddTexture(p2DRender->m_pd3dDevice, MakePath(DIR_ITEM, pPropItem->szIcon), 0xffff00ff);
						DWORD dwBlend = 255;
						if (g_pPlayer->m_Inventory.GetItemCount(pPropItem->dwID) < (DWORD)pSet->vecSet[i].vecCondItem[j].nItemNum)
							dwBlend = 60;
						if (pTex)
							pTex->Render(p2DRender, CPoint(pt.x, pt.y + 2), dwBlend);

						TCHAR szTemp[32];
						_stprintf(szTemp, "%d", pSet->vecSet[i].vecCondItem[j].nItemNum);
						CD3DFont* pOldFont = p2DRender->GetFont();
						p2DRender->SetFont(CWndBase::m_Theme.m_pFontWndTitle);
						CSize size = m_p2DRender->m_pFont->GetTextExtent(szTemp);
						m_p2DRender->TextOut(pt.x + 30 - size.cx, pt.y + 32 - size.cy + 4, szTemp, 0xFF000000);
						m_p2DRender->TextOut(pt.x + 29 - size.cx, pt.y + 31 - size.cy + 4, szTemp, 0xFF85FF8A);
						p2DRender->SetFont(pOldFont);

						CRect rectTT = CRect(pt.x, pt.y, pt.x + 32, pt.y + 32);
						if (rectTT.PtInRect(m_ptMouse))
						{
							CItemElem elem;
							CPoint pt2 = m_ptMouse;
							ClientToScreen(&pt2);
							ClientToScreen(&rectTT);
							elem.m_dwItemId = pSet->vecSet[i].vecCondItem[j].dwItemId;
							elem.m_byFlag = pSet->vecSet[i].vecCondItem[j].byFalg;
							g_WndMng.PutToolTip_Item(&elem, pt2, &rectTT);
						}

						pt.x += nGapX;
					}
				}
				pArrow->Render(p2DRender, pt);
				pt.x += nGapX;
				int nALPHA = m_nALPHAPos % pSet->vecSet[i].vecPayItem.size();
				for (unsigned j = 0; j < pSet->vecSet[i].vecPayItem.size(); j++)
				{
					ItemProp *pPropItem = prj.GetItemProp(pSet->vecSet[i].vecPayItem[j].dwItemId);
					if (pPropItem)
					{
						CTexture *pTex = CWndBase::m_textureMng.AddTexture(p2DRender->m_pd3dDevice, MakePath(DIR_ITEM, pPropItem->szIcon), 0xffff00ff);
						DWORD dwBlend = 60;
						if (j == nALPHA)
							dwBlend = 255;
						//if( g_pPlayer->m_Inventory.GetCount(pPropItem->dwID) <= 0 )
						//	dwBlend = 155;
						if (pTex)
							pTex->Render(p2DRender, CPoint(pt.x, pt.y + 2), dwBlend);

						TCHAR szTemp[32];
						_stprintf(szTemp, "%d", pSet->vecSet[i].vecPayItem[j].nItemNum);
						CD3DFont* pOldFont = p2DRender->GetFont();
						p2DRender->SetFont(CWndBase::m_Theme.m_pFontWndTitle);
						CSize size = m_p2DRender->m_pFont->GetTextExtent(szTemp);
						m_p2DRender->TextOut(pt.x + 30 - size.cx, pt.y + 30 - size.cy + 4, szTemp, 0xFF000000);
						m_p2DRender->TextOut(pt.x + 29 - size.cx, pt.y + 29 - size.cy + 4, szTemp, 0xFF85FF8A);
						p2DRender->SetFont(pOldFont);

						CRect rectTT = CRect(pt.x, pt.y, pt.x + 32, pt.y + 32);
						if (rectTT.PtInRect(m_ptMouse))
						{
							CItemElem elem;
							CPoint pt2 = m_ptMouse;
							ClientToScreen(&pt2);
							ClientToScreen(&rectTT);
							elem.m_dwItemId = pSet->vecSet[i].vecPayItem[j].dwItemId;
							elem.m_byFlag = pSet->vecSet[i].vecPayItem[j].byFalg;
							g_WndMng.PutToolTip_Item(&elem, pt2, &rectTT);
						}

						pt.x += nGapX;
					}
				}
				pt.x = 10;
				pt.y += m_nFontHeight + 1;

				//p2DRender->RenderLine(CPoint(0,pt.y),CPoint(GetWindowRect().Width()-10,pt.y),0xFF776655);
			}
			int nRange = pSet->vecSet.size();
			int nPage = GetClientRect().Height() / m_nFontHeight;
			if (IsWndStyle(WBS_VSCROLL))
			{
				m_wndScrollBar.SetVisible(TRUE);
				m_wndScrollBar.SetScrollRange(0, nRange);
				m_wndScrollBar.SetScrollPage(nPage);
			}
			else
				m_wndScrollBar.SetVisible(FALSE);
		}
		else
#endif
		m_nFontHeight = GetFontHeight() + m_nLineSpace;
	{
		CPoint pt(3, 3);
		pt.y -= m_nFontHeight * m_wndScrollBar.GetScrollPos();
		PaintListBox(p2DRender, pt, m_listItemArray);

		int nPage = GetClientRect().Height() / m_nFontHeight;
		int nRange = m_listItemArray.GetSize();
		if (IsWndStyle(WBS_VSCROLL))
		{
			m_wndScrollBar.SetVisible(TRUE);
			m_wndScrollBar.SetScrollRange(0, nRange);
			m_wndScrollBar.SetScrollPage(nPage);
		}
		else
			m_wndScrollBar.SetVisible(FALSE);
	}
}
Code:
void CWndListBox::OnLButtonUp(UINT nFlags, CPoint point)
{
	CWndBase* pWnd = GetParentWnd();
#ifdef __NEW_EXCHANGE_V19
	if (pWnd->GetWndId() == APP_DIALOG_EVENT)
	{
		CPoint pt(0, 3);
		CExchange::PSETLIST pSet = prj.m_Exchange.FindExchange(((CWndDialogEvent*)pWnd)->m_nMMI);
		unsigned nPos = m_wndScrollBar.GetScrollPos();
		unsigned nEnd = nPos + 7;
		if (!pSet)
			return;
		if (nEnd > pSet->vecSet.size())
			nEnd = pSet->vecSet.size();
		for (unsigned i = nPos; i < nEnd; ++i)
		{
			CRect DrawRect = CRect(0, pt.y, GetWindowRect().Width(), pt.y + m_nFontHeight);
			if (DrawRect.PtInRect(point))
			{
				m_nCurSelect = i;
				CWndBase* pWnd = m_pParentWnd;
				pWnd->OnChildNotify(WNM_SELCHANGE, m_nIdWnd, NULL);
				break;
			}
			pt.y += m_nFontHeight;
		}
	}
	else
#endif
	{
		CPoint pt(3, 3);
		pt.y -= m_nFontHeight * m_wndScrollBar.GetScrollPos();
		CRect rect;
		LPLISTITEM pListItem;
		for (int i = 0; i < m_listItemArray.GetSize(); i++)
		{
			pListItem = (LPLISTITEM)m_listItemArray.GetAt(i);
#if __VER >= 15 // __IMPROVE_QUEST_INTERFACE
			if (pListItem->m_bIsValid == FALSE)
			{
				pt.y += m_nFontHeight;
				continue;
			}
#endif // __IMPROVE_QUEST_INTERFACE
			int nScrollBarWidth = IsWndStyle(WBS_VSCROLL) ? m_wndScrollBar.GetClientRect().Width() : 0;
			rect.SetRect(pt.x, pt.y, pt.x + m_rectWindow.Width() - nScrollBarWidth, pt.y + m_nFontHeight);
			if (rect.PtInRect(point))
			{
				if (m_pFocusItem == pListItem)
				{
					// ºÎ¸ð°¡ Â÷Àϵå À©µµ°¡ ¾Æ´Ï¾î¾ß OnCommand ¸Þ½ÃÁö¸¦ ¹Þ´Â´Ù.
					CWndBase* pWnd = m_pParentWnd;
					pWnd->OnChildNotify(WNM_SELCHANGE, m_nIdWnd, (LRESULT*)pListItem);
					return;
				}
			}
			pt.y += m_nFontHeight;
		}
	}
}
Code:
void CWndListBox::OnLButtonDown(UINT nFlags, CPoint point)
{
	CPoint pt(3, 3);
#ifdef __NEW_EXCHANGE_V19
	CWndBase* pWnd = GetParentWnd();
	if (pWnd->GetWndId() == APP_DIALOG_EVENT)
	{
		CPoint pt(0, 3);
		CExchange::PSETLIST pSet = prj.m_Exchange.FindExchange(((CWndDialogEvent*)pWnd)->m_nMMI);
		unsigned nPos = m_wndScrollBar.GetScrollPos();
		unsigned nEnd = nPos + 7;
		if (!pSet)
			return;
		if (nEnd > pSet->vecSet.size())
			nEnd = pSet->vecSet.size();
		for (unsigned i = nPos; i < nEnd; ++i)
		{
			CRect DrawRect = CRect(0, pt.y, GetWindowRect().Width(), pt.y + m_nFontHeight);
			if (DrawRect.PtInRect(point))
			{
				m_nCurSelect = i;
				break;
			}
			pt.y += m_nFontHeight;
		}
	}
	else
#endif
	{
		pt.y -= m_nFontHeight * m_wndScrollBar.GetScrollPos();
		CRect rect;
		LPLISTITEM pListItem;
		for (int i = 0; i < m_listItemArray.GetSize(); i++)
		{
			pListItem = (LPLISTITEM)m_listItemArray.GetAt(i);
#if __VER >= 15 // __IMPROVE_QUEST_INTERFACE
			if (pListItem->m_bIsValid == FALSE)
			{
				pt.y += m_nFontHeight;
				continue;
			}
#endif // __IMPROVE_QUEST_INTERFACE
			int nScrollBarWidth = IsWndStyle(WBS_VSCROLL) ? m_wndScrollBar.GetClientRect().Width() : 0;
			rect.SetRect(pt.x, pt.y, pt.x + m_rectWindow.Width() - nScrollBarWidth, pt.y + m_nFontHeight);
			if (rect.PtInRect(point))
			{
				m_nCurSelect = i;
				m_pFocusItem = pListItem;
			}
			pt.y += m_nFontHeight;
		}
	}
}
Any hints? Thank you..
LuciferMorningStar666 is offline  
Old 09/17/2019, 23:01   #2
 
elite*gold: 0
Join Date: Jul 2018
Posts: 93
Received Thanks: 59
Enable scrollbar with GUIEditor
-Valor is offline  
Old 09/18/2019, 03:42   #3
 
elite*gold: 0
Join Date: Jun 2019
Posts: 130
Received Thanks: 3
Quote:
Originally Posted by -Valor View Post
Enable scrollbar with GUIEditor
Nope not working. Any tips? Thanks
LuciferMorningStar666 is offline  
Old 09/19/2019, 04:33   #4
 
Nιgнтмαяε's Avatar
 
elite*gold: 0
Join Date: Jul 2018
Posts: 434
Received Thanks: 310
Replace APP_DIALOG_EVENT in your resData.inc with the one from retail.
Nιgнтмαяε is offline  
Reply


Similar Threads Similar Threads
V19 Exchanger [Frage]
12/31/2014 - Flyff Private Server - 3 Replies
hay, habe folgende frage bzw Problem - ich kann bei dem Exchanger Irgendwie nicht runter scrollen also ich habe auch garnicht die ListBox an der Seite. Weiß wer vielleicht wo ich das abändern kann :D ? Wäre nice wenn mir jemand auch grad noch den code geben würde ( ist kein muss ) :D Gruß & danke im Vorraus
[Buying] v19 Taskbar And v19 Navigator
05/25/2013 - Flyff Trading - 0 Replies
i want to buy full v19 taskbar and full v19 navigator (With Animation Not the Release) (Source Code) pm me your contact info. and for the prize. (Sure Buyer) When the price is right :D UP ! Please
Need V19 Resource Files With v19 taskbar
04/08/2013 - Flyff Private Server - 2 Replies
Hi Guys I Know I am still a newbie in flyff development but, i want to learn everything in flyff development, because many people gave me courage to do that thing, many people have teached me some things in flyff development and i appreciate it but i don't understand some things in it so guys i want to ask you a favor, SO FAR I ONLY FOUND ADEILSON'S V19 TASKBAR, AND JOPSI'S V19 TASKBAR, I need Help and Pure Instructions In Installing it to the game So I Need Your help, anything, anycodes will...



All times are GMT +1. The time now is 10:30.


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.