?? chrwarehouse.cpp
字號(hào):
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 籃 結(jié)努 掂飯撈記
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矯 肺弊 持備 皋矯瘤 持扁...
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -