⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 quickdialog.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	NETWORK->Send(&msg,sizeof(msg));
}
void CQuickDialog::FakeMoveQuickItem(LONG x, LONG y, CQuickItem * pItem)
{
	WORD ToAbsPos=0;
	if(!GetAbsPositionForXYRef(x,y,ToAbsPos)) return;

//	后傍埃捞 酒聪搁 困摹背券!!!
//	if(!m_pIconGridSheet[m_selectedPage]->IsAddable(ToAbsPos-QUICK_STARTPOSITION))
//		return;


	CQuickItem * pToQItem = GetQuickItem(ToAbsPos);

	//------------------------------------
	MSG_QUICK_MOVE_SYN msg;
	msg.Category = MP_QUICK;
	msg.Protocol = MP_QUICK_MOVE_SYN;
	msg.dwObjectID = HEROID;
	//------------------------------------
	msg.FromSrcPos			= pItem->GetSrcPosition();
	msg.wFromSrcItemIdx		= pItem->GetSrcIdx();
	msg.FromQuickPos		= pItem->GetPosition();
	msg.ToSrcPos			= (pToQItem?pToQItem->GetSrcPosition():0);
	msg.wToSrcItemIdx		= (pToQItem?pToQItem->GetSrcIdx():0);
	msg.ToQuickPos			= ToAbsPos;
	

	if(msg.FromQuickPos == msg.ToQuickPos)
		return ;

	NETWORK->Send(&msg,sizeof(msg));
}


void CQuickDialog::FakeAddItem(LONG x, LONG y, CItem * pItem)
{
	WORD abs_pos;
	if(!GetAbsPositionForXYRef(x, y, abs_pos))
		return ;

	if(!ITEMMGR->IsOptionItem(pItem->GetItemIdx(), pItem->GetDurability()) && ITEMMGR->IsDupItem(pItem->GetItemIdx()))
	{
		for(POSTYPE i = TP_QUICK_START ; i < TP_QUICK_END ; ++i)
		{
			CQuickItem * pQuickItem = GetQuickItem(i);
			if(pQuickItem)
			if(pQuickItem->GetSrcIdx() == pItem->GetItemIdx())
			{
				FakeMoveIcon(x, y, pQuickItem);	//KES 040513
				return;
			}
		}
	}

	CQuickItem *pOldQuick = GetQuickItem(abs_pos);
	FakeAddItem(abs_pos, pItem, pOldQuick);
}
void CQuickDialog::FakeAddItem(POSTYPE abs_pos, CItem * pItem, CQuickItem * pOldQuick)
{
	if(pOldQuick)
	if(pOldQuick->GetSrcPosition() == pItem->GetPosition())
		return;

	if( pItem->IsLocked() ) return;
	
	if( pItem->GetItemKind() == eYOUNGYAK_ITEM )
	{
		if( !GAMEIN->GetInventoryDialog()->CheckItemLockForItemIdx(pItem->GetItemIdx()) )
			return;
	}

	if(TP_MUNPAWAREHOUSE_START <=  pItem->GetItemBaseInfo()->Position && pItem->GetItemBaseInfo()->Position < TP_MUNPAWAREHOUSE_END )
		return;
	else if(TP_PYOGUK_START <= pItem->GetItemBaseInfo()->Position && pItem->GetItemBaseInfo()->Position < TP_PYOGUK_END)
		return;

	MSG_QUICK_ADD_SYN msg;
	msg.Category		= MP_QUICK;
	msg.Protocol		= MP_QUICK_ADD_SYN;
	msg.dwObjectID		= HEROID;
	msg.QuickPos		= abs_pos;
	msg.SrcPos			= pItem->GetPosition();
	msg.SrcItemIdx		= pItem->GetItemIdx();
	msg.OldSrcPos		= (pOldQuick?pOldQuick->GetSrcPosition():0);
	msg.OldSrcItemIdx	= (pOldQuick?pOldQuick->GetSrcIdx():0);

	NETWORK->Send(&msg, sizeof(MSG_QUICK_ADD_SYN));

	//ITEM_LOCK
}
void CQuickDialog::FakeAddMugong(LONG x, LONG y, CMugongBase * pMugong)
{
	// 厘馒 公傍 力茄 绝促. 葛电 公傍?

	WORD abs_pos;
	if(!GetAbsPositionForXYRef(x, y, abs_pos))
		return;
	WORD rel_pos;
	if(!m_pIconGridSheet[m_selectedPage]->GetPositionForXYRef(x,y,rel_pos))
		return;
//	if(!m_pIconGridSheet[m_selectedPage]->IsAddable(rel_pos))
//		return;
	if(pMugong->GetSung() == 0)
		return;

	CQuickItem* pOldQuick = GetQuickItem(abs_pos);
	if(pOldQuick)
	if(pOldQuick->GetSrcPosition() == pMugong->GetPosition())
		return;
	MSG_QUICK_ADD_SYN msg;
	msg.Category		= MP_QUICK;
	msg.Protocol		= MP_QUICK_ADD_SYN;
	msg.dwObjectID		= HEROID;
	msg.QuickPos		= abs_pos;
	msg.SrcPos			= pMugong->GetPosition();
	msg.SrcItemIdx		= pMugong->GetItemIdx();
	msg.OldSrcPos		= (pOldQuick?pOldQuick->GetSrcPosition():0);
	msg.OldSrcItemIdx	= (pOldQuick?pOldQuick->GetSrcIdx():0);
	
	NETWORK->Send(&msg, sizeof(MSG_QUICK_ADD_SYN));
}

void CQuickDialog::FakeAddAbility(LONG x, LONG y, CAbilityIcon * pAbility)
{
	WORD abs_pos;
	if(!GetAbsPositionForXYRef(x, y, abs_pos))
		return;
	WORD rel_pos;
	if(!m_pIconGridSheet[m_selectedPage]->GetPositionForXYRef(x,y,rel_pos))
		return;
	CQuickItem* pOldQuick = GetQuickItem(abs_pos);
	if(pOldQuick)
	if(pOldQuick->GetSrcPosition() == pAbility->GetAbilityInfo()->GetPosition() )
		return;

	MSG_QUICK_ADD_SYN msg;
	msg.Category		= MP_QUICK;
	msg.Protocol		= MP_QUICK_ADD_SYN;
	msg.dwObjectID		= HEROID;
	msg.QuickPos		= abs_pos;
//	msg.SrcPos			= pAbility->GetAbilityInfo()->GetPosition();
	msg.SrcPos			= pAbility->GetAbilityInfo()->GetAbsPosition();
	msg.SrcItemIdx		= pAbility->GetAbilityInfo()->GetIdx() + MIN_ABILITY_INDEX;
	msg.OldSrcPos		= (pOldQuick?pOldQuick->GetSrcPosition():0);
	msg.OldSrcItemIdx	= (pOldQuick?pOldQuick->GetSrcIdx():0);
	
	NETWORK->Send(&msg, sizeof(MSG_QUICK_ADD_SYN));

}

void CQuickDialog::RefreshIcon()
{
//	for( int i = 0 ; i < MAX_QUICKSHEET_NUM ; ++i )
	for( int i = 0 ; i < TAB_QUICK_NUM ; ++i )
	{
//		for( int j = 0 ; j < MAX_QUICKITEMPERSHEET_NUM ; ++j )
		for( int j = 0 ; j < TABCELL_QUICK_NUM ; ++j )
		{
			SetToolTipIcon( (CQuickItem*)m_pIconGridSheet[i]->GetIconForIdx(j) );			
		}
	}
}

void CQuickDialog::RefreshIcon( POSTYPE pos )
{
	SetToolTipIcon( GetQuickItem( pos ) );
}

void CQuickDialog::SetToolTipIcon( CQuickItem * item )
{
	if( item == NULL )	return;
	
	char ToolTipText[256] = { 0, };
	
	cImage imgToolTip;
	SCRIPTMGR->GetImage( 63, &imgToolTip, PFT_HARDPATH );
	item->SetToolTip( "", RGB_HALF( 255, 255, 255), &imgToolTip, TTCLR_ITEM_CANEQUIP );
	
	ITEM_INFO*	pInfo		= ITEMMGR->GetItemInfo( item->GetSrcIdx() );
	
	if( pInfo )
	{
		wsprintf(ToolTipText, "[%s]", pInfo->ItemName );
		item->AddToolTipLine( ToolTipText, TTTC_DEFAULT );

		//康距狼 版快 雀汗仿
		if( pInfo->ItemKind == eYOUNGYAK_ITEM )
		{
			if( pInfo->GenGol != 0)
			{
				wsprintf(ToolTipText, "%s +%d", CHATMGR->GetChatMsg(261), pInfo->GenGol);
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( pInfo->MinChub != 0)
			{
				wsprintf(ToolTipText, "%s +%d", CHATMGR->GetChatMsg(262), pInfo->MinChub);
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( pInfo->CheRyuk != 0)
			{
				wsprintf(ToolTipText, "%s +%d", CHATMGR->GetChatMsg(263), pInfo->CheRyuk);
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( pInfo->SimMek != 0)
			{
				wsprintf(ToolTipText, "%s +%d", CHATMGR->GetChatMsg(264), pInfo->SimMek);
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( (int)(pInfo->AttrRegist.GetElement_Val(ATTR_FIRE)) !=0 )
			{
				wsprintf(ToolTipText, "%s +%d%%", CHATMGR->GetChatMsg(265), (int)(pInfo->AttrRegist.GetElement_Val(ATTR_FIRE)));
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( (int)(pInfo->AttrRegist.GetElement_Val(ATTR_WATER)) !=0 )
			{
				wsprintf(ToolTipText, "%s +%d%%", CHATMGR->GetChatMsg(266), (int)(pInfo->AttrRegist.GetElement_Val(ATTR_WATER)));
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( (int)(pInfo->AttrRegist.GetElement_Val(ATTR_TREE)) !=0 )
			{
				wsprintf(ToolTipText, "%s +%d%%", CHATMGR->GetChatMsg(267), (int)(pInfo->AttrRegist.GetElement_Val(ATTR_TREE)));
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( (int)(pInfo->AttrRegist.GetElement_Val(ATTR_IRON)) !=0 )
			{
				wsprintf(ToolTipText, "%s +%d%%", CHATMGR->GetChatMsg(268), (int)(pInfo->AttrRegist.GetElement_Val(ATTR_IRON)));
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( (int)(pInfo->AttrRegist.GetElement_Val(ATTR_EARTH)) !=0 )
			{
				wsprintf(ToolTipText, "%s +%d%%", CHATMGR->GetChatMsg(269), (int)(pInfo->AttrRegist.GetElement_Val(ATTR_EARTH)));
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( pInfo->LifeRecover !=0 )
			{
				wsprintf(ToolTipText, "%s %d", CHATMGR->GetChatMsg(270), pInfo->LifeRecover);
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( (int)(pInfo->LifeRecoverRate*100) !=0 )
			{
				wsprintf(ToolTipText, "%s %d%%", CHATMGR->GetChatMsg(270), (int)(pInfo->LifeRecoverRate*100));
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( pInfo->NaeRyukRecover !=0 )
			{
				wsprintf(ToolTipText, "%s %d", CHATMGR->GetChatMsg(271), pInfo->NaeRyukRecover);
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}
			if( (int)(pInfo->NaeRyukRecoverRate*100) !=0 )
			{
				wsprintf(ToolTipText, "%s %d%%", CHATMGR->GetChatMsg(271), (int)(pInfo->NaeRyukRecoverRate*100));
				item->AddToolTipLine( ToolTipText, TTTC_EXTRAATTR );
			}	
		}
		else if( pInfo->ItemKind & eEQUIP_ITEM )
		{
			if( ITEMMGR->CanEquip( pInfo->ItemIdx ) )
			{
				item->SetImageRGB( ICONCLR_USABLE );
			}
			else
			{
				item->SetImageRGB( ICONCLR_DISABLE );
			}
		}
		///////
		
		return;
	}

	CSkillInfo* pCommSkill	= SKILLMGR->GetSkillInfo( item->GetSrcIdx() );

	if( pCommSkill )
	{
		wsprintf(ToolTipText, "[%s]", pCommSkill->GetSkillName() );
		item->AddToolTipLine( ToolTipText, TTTC_DEFAULT );

		CMugongBase* pMugongBase = GAMEIN->GetMugongDialog()->GetMugongAbs( item->GetSrcPosition() );

		if( pMugongBase )
		{
			//公傍狼 版快 己 / 鞘夸郴仿
			if( pCommSkill->GetNeedExp( pMugongBase->GetSung() ) )
			{				
				if( pMugongBase->GetSung() < 12 )
				{
					sprintf( ToolTipText, CHATMGR->GetChatMsg(471), pMugongBase->GetSung(),
						pMugongBase->GetExpPoint() * 100 / (float)pCommSkill->GetNeedExp(pMugongBase->GetSung()) );
				}
				else
				{
					sprintf( ToolTipText, CHATMGR->GetChatMsg(405), pMugongBase->GetSung() );
				}				
			}

			item->AddToolTipLine( ToolTipText, TTTC_MUGONGEXP );

			if( pMugongBase->GetSung() > 0 )
			{
				wsprintf( ToolTipText, CHATMGR->GetChatMsg(472), pCommSkill->GetNeedNaeRyuk( pMugongBase->GetSung() ) );
				item->AddToolTipLine( ToolTipText, TTTC_MUGONGNEEDMANA );
			}
		}
		
		if( pCommSkill->GetSkillKind() == SKILLKIND_OUTERMUGONG && 
			pCommSkill->GetWeaponType() != HERO->GetWeaponEquipType() )
		{
			item->SetImageRGB( ICONCLR_DISABLE );
				
			switch(pCommSkill->GetWeaponType())
			{
			case WP_GUM:
				item->AddToolTipLine( CHATMGR->GetChatMsg(465), TTTC_LIMIT );
				break;
			case WP_GWUN:	
				item->AddToolTipLine( CHATMGR->GetChatMsg(466), TTTC_LIMIT );
				break;
			case WP_DO:	
				item->AddToolTipLine( CHATMGR->GetChatMsg(467), TTTC_LIMIT );
				break;
			case WP_CHANG:	
				item->AddToolTipLine( CHATMGR->GetChatMsg(468), TTTC_LIMIT );
				break;
			case WP_GUNG:	
				item->AddToolTipLine( CHATMGR->GetChatMsg(469), TTTC_LIMIT );
				break;
			case WP_AMGI:	
				item->AddToolTipLine( CHATMGR->GetChatMsg(470), TTTC_LIMIT );
				break;
			}
		}
		else
		{
			item->SetImageRGB( ICONCLR_USABLE );
		}

		return;
	}

	CAbility* pAbility = HERO->GetAbilityGroup()->GetAbility( item->GetSrcIdx() - MIN_ABILITY_INDEX );

	if( pAbility )
	{
		CAbilityInfo* pAbilityInfo = pAbility->GetAbilityInfo();
		if( pAbilityInfo )
		{
			wsprintf( ToolTipText, "[%s]", pAbilityInfo->GetInfo()->Ability_name );
			item->AddToolTipLine( ToolTipText, TTTC_DEFAULT );
		}
	}
}
/*
BOOL CQuickDialog::IsAddable(POSTYPE absPos)
{
	int tabNum = absPos/TABCELL_QUICK_NUM;
	return m_pIconGridSheet[tabNum]->IsAddable(absPos);	
}
	*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -