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

📄 chrwarehouse.cpp

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		szQuerry.Format( "DELETE guild_item WHERE cn = %d ", index );
		result = g_pDb->ExecuteSQL( KSCToUnicode( szQuerry, szwQuerry ), (BYTE)DRAGON_DB[pView->m_nCurDbIndex] );
		if( result < 0 )
		{
			MessageBox( "Fail no. 3, Delete item ",NULL,NULL);
		}
		
	}

	
	
}

void CChrWareHouse::OnSave() 
{
	if( !RIGHT(MASK_27) )	return;
	if( m_UpdateNo<= 0 ) {AfxMessageBox("Selete Item~~");return;}
	if( MessageBox( "Do you want to Save WareHouse Item?", "SAVE", MB_YESNO ) != IDYES) return;

	UpdateData( 1 );

	CCharacterView *pView = (CCharacterView*)GetParent();

	CString szQuerry;
	WCHAR szwQuerry[512];
	int nItem, index, ret;

	int count = m_listGuildItem.GetItemCount();
	nItem = -1;
	while(count > 0)
	{
		nItem = m_listGuildItem.GetNextItem( nItem, LVNI_SELECTED );
		if( nItem < 0 ) break;

		char temp[50];
		m_listGuildItem.GetItemText( nItem, 0, temp, 50 );
		index = atoi( temp );

		ItemAttr targetItem = GetCurrentItem();

		if( !index ) continue;
		szQuerry.Format( "UPDATE guild_item set item_no = %d, attr1 = %d, attr2 = %d, attr3 = %d, "
			"attr4 = %d, attr5 = %d, attr6 = %d WHERE cn = %d ", 
			targetItem.item_no, targetItem.attr[0], targetItem.attr[1], targetItem.attr[2], 
			targetItem.attr[3], targetItem.attr[4], targetItem.attr[5], index );

		ret = g_pDb->ExecuteSQL( KSCToUnicode( szQuerry, szwQuerry ), (BYTE)DRAGON_DB[pView->m_nCurDbIndex] );
		if( ret < 0 )
		{
			MessageBox( "Error Update guild_item " );
		}
		else
		{
			CString data;
			data.Format( "%d", targetItem.item_no );
			m_listGuildItem.SetItemText( nItem, 1, data );
		}
	}

	//for extensionlog
	WriteLog( 2 );	
}

void CChrWareHouse::SetItemView(ItemAttr *work)
{
	//CCharacterView* pView = (CCharacterView*)GetParent();
	
	int type, num;
	GetItemIndex( work->item_no, type, num );
	
	if(CheckValidItem(type, num))	//蜡瓤茄 酒捞袍牢版快 
	{
		ItemData51* pData = GetItemPointer(	type, num );

		char *type_to_name[11] = {	"PLANT", "MINERAL", "HERB", "COOK", "POTION", "TOOL", 
										"WEAPON", "DISPOSABLE", "ARMOR", "ACCESSORY", "ETC" };

		//SetDlgItemText(IDC_UPDATE_HAN_NAME, pData->han_name);	//酒捞袍 捞抚 悸泼 
		m_UpdateHanName = pData->han_name;
		//SetDlgItemText(IDC_UPDATE_TYPE, type_to_name[ type ]);	//Type 悸泼 
		m_UpdateType = type_to_name[ type ];
		//SetDlgItemInt(IDC_UPDATE_NO, work->item_no);			//酒捞袍 锅龋 悸泼 
		m_UpdateNo = work->item_no;

		if(pData->mouse_mr == 3)
		{
			//SetDlgItemText(IDC_MUCH_TYPE, "MUCH");					//Type阑 Much肺 悸泼 
			m_MuchType = "MUCH";
			//SetDlgItemInt(IDC_MUCH_NOW, work->attr[IATTR_MUCH]);	//MUCH_MAX 蔼 悸泼 
			m_MuchNow = work->attr[IATTR_MUCH];
			//SetDlgItemInt(IDC_MUCH_MAX, 0);							//MUCH_NOW 蔼 悸泼 
			m_MuchMax = work->attr[IATTR_MUCH];
		}
		else
		{
			//SetDlgItemText(IDC_MUCH_TYPE, "DURATION");				//Type阑 DURATION栏肺悸泼 
			m_MuchType = "DURATION";
			//SetDlgItemInt(IDC_MUCH_NOW, LOWORD( work->attr[IATTR_DURATION] ));	//curr 扁埃 泅犁 蔼
			m_MuchNow = LOWORD( work->attr[IATTR_DURATION] );
			//SetDlgItemInt(IDC_MUCH_MAX, HIWORD( work->attr[IATTR_DURATION] ));	//max 扁埃 钙胶蔼						//MUCH_NOW 蔼 悸泼 
			m_MuchMax = HIWORD( work->attr[IATTR_DURATION] );
		}

		
		//SetDlgItemInt(IDC_LIMIT, work->attr[IATTR_LIMIT]);	//Limit Number
		m_UpdateLimit = work->attr[IATTR_LIMIT];
		ConvertLimit(m_UpdateLimit);//020303 lsw

		t_RareMain SokSung_work;
				
		memcpy(&SokSung_work,&work->attr[IATTR_SOKSUNG],4);

		//SetDlgItemInt(IDC_MUTANT_GRADE, SokSung_work.grade);
		m_MutantGrade = SokSung_work.grade;
		//SetDlgItemInt(IDC_MUTANT_KIND1, SokSung_work.soksung1);
		m_MutantKind1 = SokSung_work.soksung1;
		//SetDlgItemInt(IDC_MUTANT_KIND2, SokSung_work.soksung2);
		m_MutantKind2 = SokSung_work.soksung2;
		
		m_MutantKind3 = SokSung_work.soksung3;

		m_iHighLevel  = SokSung_work.HighLevel;	// 021128
		m_bIsDynamic  = SokSung_work.IsDynamicRare;	// 021128

		UpdateData(FALSE);
	}
}


ItemData51* CChrWareHouse::GetItemPointer( int nType, int nNum)
{
	CCharacterView* pView = (CCharacterView*)GetParent();
	if(!CheckValidItem(nType, nNum))
		return NULL;

	return &m_pApp->m_ItemTable[pView->m_nCurServerSet][ nType ][ nNum ];
}

void CChrWareHouse::ConvertLimit(DWORD dwlimit)//020303 lsw
{
	DWORD dwInput = dwlimit + 304*86400 + 24*3600 + 6*3600 + 31536000;//6 篮 结努 掂饭捞记
	
	
	int y = 1998 + dwInput/31536000;
	dwInput %= 31536000;

	int d = dwInput/86400;
	dwInput %=86400;
	
	int h=	dwInput/3600;
	dwInput %=3600;
	
	int m = dwInput/60;
	dwInput %=60;
	
	int s = dwInput;
	
	m_LimitResult.Format("%d/%d(=>mon:%d day:%d) %d:%d:%d ",y,d,d/30+1,d%30,h,m,s);
}

void CChrWareHouse::OnClickGuildItemList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	OnDblclkGuildItemList( pNMHDR, pResult );
	
	*pResult = 0;
}

ItemAttr CChrWareHouse::GetCurrentItem()
{
	UpdateData( 1) ;
	ItemAttr NullItem = {0, };
	ItemAttr NewData= {0, };
	int type, num;
	type = m_UpdateNo / 1000;
	num =  m_UpdateNo % 1000;

	if(CheckValidItem(type, num))	//蜡瓤茄 酒捞袍牢版快 
	{
		NewData.item_no  = (WORD)m_UpdateNo;		//酒捞袍 锅龋 
			
		if( m_MuchMax !=0 )
		{
			if(m_MuchNow > m_MuchMax)
			{
				MessageBox("Confirm the maximum of durability");
				return NullItem;
			}
			NewData.attr[IATTR_DURATION] = MAKELONG(m_MuchNow,m_MuchMax);
		}
		else 
			NewData.attr[IATTR_MUCH] = m_MuchNow;

		NewData.attr[IATTR_LIMIT] = m_UpdateLimit;
		NewData.attr[IATTR_SOKSUNG] = AddSoksung();	//this sok lsw
	}

	return NewData;
}

DWORD CChrWareHouse::AddSoksung()
{
	t_RareMain Rare;

	Rare.grade			=	m_MutantGrade;
	Rare.soksung1		=	m_MutantKind1;
	Rare.soksung2		=	m_MutantKind2;
	Rare.soksung3		=	m_MutantKind3;
	Rare.HighLevel		=	m_iHighLevel;		
	Rare.IsDynamicRare	=	m_bIsDynamic;	
	DWORD sok = 0;
	memcpy(&sok,&Rare,sizeof(DWORD) );
	return sok;
}

void CChrWareHouse::OnInsert() 
{
	if( !RIGHT(MASK_26) )	return;
	//if( m_UpdateNo<= 0 ) {AfxMessageBox("Selete Item~~");return;}
	if( MessageBox( "Do you want to Insert WareHouse Item?", "INSERT", MB_YESNO ) != IDYES) return;

	UpdateData( 1 );
	CCharacterView *pView = (CCharacterView*)GetParent();

	ItemAttr NewItem = GetCurrentItem();

	int guild_code = m_nGuildNumber;

	if( !guild_code ) return ;
	if( !NewItem.item_no ) return;



	CString szQuerry;
	WCHAR szwQuerry[512];

	szQuerry.Format( "INSERT INTO guild_item ( guild_code, item_no, attr1, attr2, attr3, attr4, "
		"attr5, attr6, name, [date] ) VALUES ( %d, %d, %d, %d, %d, %d, %d, %d, 'By GM', getdate() ) ",
		guild_code, NewItem.item_no, NewItem.attr[0], NewItem.attr[1], NewItem.attr[2], 
		NewItem.attr[3], NewItem.attr[4], NewItem.attr[5] );

	int ret = g_pDb->ExecuteSQL( KSCToUnicode( szQuerry, szwQuerry ), (BYTE)DRAGON_DB[pView->m_nCurDbIndex] );
	if( ret < 0 )
	{
		MessageBox( "Failed insert item to guild_box " );
		return;	// 021212
	}

	//for extensionlog
	WriteLog( 1 );	

	OnSearchGuild();
}

void CChrWareHouse::WriteLog( int iFlag)
{	//iFlag : 0 昏力, 1 火涝, 2 历厘.
	CCharacterView *pView = (CCharacterView*)GetParent();
	
	if( pView->m_pcLogMgr == NULL)
	{
		MessageBoxPrintf( MB_OK, "NULL CLogMgr In WareHouse" );
		return;
	}

	CString szItemInfo;
	szItemInfo.Format( "Limit:%d@Type:%s@Now:%d@Max:%d@Grade:%d@Kind1:%d@Kind2:%d@Kind3:%d@High:%d@IsFunc:%d",
		m_UpdateLimit, m_MuchType, m_MuchNow, m_MuchMax, m_MutantGrade, m_MutantKind1,m_MutantKind2,m_MutantKind3, m_iHighLevel, m_bIsDynamic );

	switch( iFlag )
	{
	//case 0:
	//	{
	//		pView->m_pcLogMgr->CheckChrWareHouse( "Delete", "WareHouse", m_UpdateNo, szItemInfo.GetBuffer(0) );
	//	}break;
	case 1:
		{
			pView->m_pcLogMgr->CheckChrWareHouse( "Insert", "WareHouse", m_UpdateNo, szItemInfo.GetBuffer(0) );
		}break;
	case 2:
		{
			pView->m_pcLogMgr->CheckChrWareHouse( "Save", "WareHouse", m_UpdateNo, szItemInfo.GetBuffer(0) );
		}break;

	}

}

void CChrWareHouse::WriteLog( const CString& cn, const CString& item, const CString& guild, const CString& name, const CString& date)
{	//iFlag : 0 昏力, 1 火涝, 2 历厘.
	CCharacterView *pView = (CCharacterView*)GetParent();
	
	if( pView->m_pcLogMgr == NULL)
	{
		MessageBoxPrintf( MB_OK, "NULL CLogMgr In WareHouse" );
		return;
	}

	CString szWareInfo;
	szWareInfo.Format( "Cn:%s@GuildNum:%s@Name:%s@Date:%s", cn, guild, name, date );	
	pView->m_pcLogMgr->CheckChrWareHouse( "Delete", "WareHouse", atoi( item ) , szWareInfo.GetBuffer(0) );
}
//Save, Load矫 肺弊 持备 皋矫瘤 持扁...

⌨️ 快捷键说明

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