// 입찰 취소 void CGuildCombat1to1Mng::SetCancelTenderGuild( CUser* pUser ) { if( m_nState != GC1TO1_CLOSE ) { pUser->AddDiagText( prj.GetText( TID_GAME_GUILDCOMBAT1TO1_NOTENDER ) ); return; } // 길드마스터만 입찰 취소 가능 if( !IsGuildMaster( pUser ) ) { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_NOTMASTER ); return; } CGuild* pGuild = pUser->GetGuild(); if( pGuild ) { for( vector<__GC1TO1TENDER>::iterator it=m_vecTenderGuild.begin(); it!=m_vecTenderGuild.end(); it++ ) { if( (*it).ulGuildId == pGuild->GetGuildId() ) { int nReturnGold = (int)( (*it).nPenya * ( (float)m_nCancelReturnRate / 100 ) ); //인벤 꽉 찼을때 예외처리 해야함.. int nTotal = pUser->GetGold() + nReturnGold; if( nReturnGold > 0 && nTotal < 0 ) // overflow { pUser->AddDefinedText( TID_GAME_LACKSPACE ); return; } pUser->AddGold( nReturnGold ); g_dpDBClient.SendGC1to1Tender( 'U', (*it).ulGuildId, (*it).nPenya, 'C' ); m_vecTenderGuild.erase( it ); CString strTemp; strTemp.Format( prj.GetText( TID_GAME_GUILDCOMBAT1TO1_CANCELTENDER ), nReturnGold ); pUser->AddDiagText( strTemp ); // 로그 남김(아이템로그) LogItemInfo aLogItem; aLogItem.Action = "9"; aLogItem.SendName = pUser->GetName(); aLogItem.RecvName = "GUILDCOMBAT1TO1_CANCELRETURN"; aLogItem.WorldId = pUser->GetWorld()->GetID(); //aLogItem.ItemName = "SEED"; _stprintf( aLogItem.szItemName, "%d", II_GOLD_SEED1 ); aLogItem.Gold = pUser->GetGold() - nReturnGold; aLogItem.Gold2 = pUser->GetGold(); aLogItem.Gold_1 = nReturnGold; g_DPSrvr.OnLogItem( aLogItem ); break; } } } }
// 입찰 길드(m_vecTenderGuild)의 인덱스 값 int CGuildCombat1to1Mng::GetTenderGuildIndexByUser( CUser* pUser ) { CGuild* pGuild = pUser->GetGuild(); if( pGuild ) { for( int i=0; i<(int)( m_vecTenderGuild.size() ); i++ ) { if( pGuild->GetGuildId() == m_vecTenderGuild[i].ulGuildId ) return i; } } return NULL_ID; }
void CWndGuildBank::OnInitialUpdate() { CWndNeuz::OnInitialUpdate(); // 여기에 코딩하세요 #if __VER >= 11 // __SYS_POCKET if(GetWndBase( APP_BAG_EX )) GetWndBase( APP_BAG_EX )->Destroy(); #endif if( g_WndMng.m_pWndTrade || g_WndMng.m_pWndShop || g_WndMng.m_pWndBank || g_WndMng.GetWndVendorBase() ) { Destroy(); return; } CWndStatic* pCost = (CWndStatic*) GetDlgItem( WIDC_GUILDBANK_NUM ); pCost->AddWndStyle(WSS_MONEY); CWndTabCtrl* pTabCtrl = reinterpret_cast<CWndTabCtrl*>(GetDlgItem(WIDC_TABCTRL1)); m_wndItemCtrl.Create( WLVS_ICON, CRect( 0, 0, 250, 250 ), pTabCtrl, 11 ); m_wndItemCtrl.InitItem( &g_pPlayer->GetGuild()->m_GuildBank, APP_GUILD_BANK ); WTCITEM tabTabItem; tabTabItem.mask = WTCIF_TEXT | WTCIF_PARAM; tabTabItem.pszText = prj.GetText(TID_GAME_ITEM);//"아이템"; tabTabItem.pWndBase = &m_wndItemCtrl; pTabCtrl->InsertItem( 0, &tabTabItem ); LPWNDCTRL lpWndCtrl = GetWndCtrl( WIDC_CUSTOM1 ); m_wndGold.Create( "g", WBS_NODRAWFRAME, lpWndCtrl->rect, this, WIDC_CUSTOM1 ); m_wndGold.AddWndStyle( WBS_NODRAWFRAME ); CGuild *pGuild = g_pPlayer->GetGuild(); if( pGuild ) { if( pGuild->IsMaster( g_pPlayer->m_idPlayer ) == FALSE ) // 길마가 아니면 { CWndButton* pWndButt = (CWndButton*)GetDlgItem(WIDC_BUTTON2); // 망토제작 버튼을 disable 시킨다. pWndButt->EnableWindow( FALSE ); } } #ifdef __GLDISABLE CWndButton* pWndButt = (CWndButton*)GetDlgItem(WIDC_BUTTON1); pWndButt->EnableWindow( FALSE ); #endif CWndInventory* pWndInventory = (CWndInventory*)GetWndBase( APP_INVENTORY ); CRect rectInventory = pWndInventory->GetWindowRect( TRUE ); CPoint ptInventory = rectInventory.TopLeft(); CPoint ptMove; CRect rect = GetWindowRect( TRUE ); if( ptInventory.x > rect.Width() / 2 ) ptMove = ptInventory - CPoint( rect.Width(), 0 ); else ptMove = ptInventory + CPoint( rectInventory.Width(), 0 ); Move( ptMove ); if( pGuild ) { CWndButton* pWndButt = (CWndButton*)GetDlgItem(WIDC_BUTTON3); #if __VER >= 8 // __GUILDCOMBAT_85 pWndButt->EnableWindow(FALSE); pWndButt->SetVisible(FALSE); #else // __VER >= 8 if( g_GuildCombatMng.m_uWinGuildId == pGuild->GetGuildId() ) pWndButt->EnableWindow(TRUE); else pWndButt->EnableWindow(FALSE); #endif // __VER >= 8 } #if __VER >= 11 // __GUILD_BANK_LOG CWndButton* pWndButtLog = (CWndButton*)GetDlgItem(WIDC_LOG); pWndButtLog->EnableWindow(TRUE); pWndButtLog->SetVisible(TRUE); #else //__GUILD_BANK_LOG //CWndButton* pWndButtLog = (CWndButton*)GetDlgItem(WIDC_LOG); //pWndButtLog->EnableWindow(FALSE); //pWndButtLog->SetVisible(FALSE); #endif //__GUILD_BANK_LOG }
BOOL CWndGuildBank::OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ) { if( WIN_DBLCLK == message ) return FALSE; LPSHORTCUT lpShortcut = reinterpret_cast<LPSHORTCUT>(pLResult); if( lpShortcut == NULL ) return FALSE; if( lpShortcut->m_pFromWnd == NULL ) return FALSE; CWndBase* pWndFrame = lpShortcut->m_pFromWnd->GetFrameWnd(); if( pWndFrame == NULL ) return FALSE; if( pWndFrame->GetWndId() == APP_INVENTORY ) { switch (message) { case WIN_ITEMDROP: { if( nID == 11 ) // item { BOOL bForbid = TRUE; SAFE_DELETE( g_WndMng.m_pWndTradeGold ); if( lpShortcut->m_dwData != 0 ) { CWndItemCtrl* pWndItemCtrl = (CWndItemCtrl*)lpShortcut->m_pFromWnd; UINT SelectCount = pWndItemCtrl->GetSelectedCount(); if( SelectCount != 1) { //g_WndMng.PutString( "장착 되어 있는것은 넣을수 없습니다", NULL, 0xffffff00 ); g_WndMng.PutString( prj.GetText(TID_GAME_EQUIPPUT), NULL, prj.GetTextColor( TID_GAME_EQUIPPUT ) ); } else { for( int i = 0; i < (int)( SelectCount ); i++ ) { int nItem = pWndItemCtrl->GetSelectedItem( i ); pWndItemCtrl->GetItem( nItem ); } CItemElem* itemElem = (CItemElem*)lpShortcut->m_dwData; if( itemElem->IsCharged() ) { g_WndMng.PutString( prj.GetText( TID_GAME_NOTTRADE ), NULL, prj.GetTextColor( TID_GAME_NOTTRADE ) ); return FALSE; } if( itemElem->m_nItemNum > 1 ) { g_WndMng.m_pWndTradeGold = new CWndTradeGold; memcpy( &g_WndMng.m_pWndTradeGold->m_Shortcut, pLResult, sizeof(SHORTCUT) ); g_WndMng.m_pWndTradeGold->m_dwGold = itemElem->m_nItemNum; g_WndMng.m_pWndTradeGold->m_nIdWndTo = APP_GUILD_BANK; g_WndMng.m_pWndTradeGold->m_pWndBase = this; g_WndMng.m_pWndTradeGold->Initialize( NULL, APP_TRADE_GOLD ); g_WndMng.m_pWndTradeGold->MoveParentCenter(); CWndStatic* pStatic = (CWndStatic *)g_WndMng.m_pWndTradeGold->GetDlgItem( WIDC_STATIC ); CWndStatic* pStaticCount = (CWndStatic *)g_WndMng.m_pWndTradeGold->GetDlgItem( WIDC_CONTROL1 ); CString strMain = prj.GetText(TID_GAME_MOVECOUNT);//"몇개를 이동하시겠습니까?"; CString strCount = prj.GetText(TID_GAME_NUMCOUNT);// " 갯수 : "; pStatic->m_strTitle = strMain; pStaticCount->m_strTitle = strCount; } else { g_DPlay.SendPutItemGuildBank( (BYTE)( lpShortcut->m_dwId ), 1, 1 ); } } } } } break; case WIN_DBLCLK: { } break; case WNM_CLICKED: { switch( nID ) { case WTBID_CLOSE: // 종료 { g_DPlay.SendCloseGuildBankWnd(); } break; } } break; } } else { switch( nID ) { case WTBID_CLOSE: { g_DPlay.SendCloseGuildBankWnd(); } break; case WIDC_BUTTON1: // 길드 지원(공헌) SAFE_DELETE(m_pwndGuildMerit); // TID_GAME_GUILDNOTHINGNAME { CGuild *pGuild = g_pPlayer->GetGuild(); if( pGuild ) { if( pGuild->m_szGuild[0] == '\0' ) { // "길드명칭이 없어 길드에 지원을 할 수 없습니다. 길드마스터는 길드명칭을 정해주세요." g_WndMng.OpenMessageBox( prj.GetText( TID_GAME_GUILDNOTHINGNAME ), MB_OK, this ); } else { m_pwndGuildMerit = new CWndGuildMerit; m_pwndGuildMerit->Initialize( this ); } } } break; case WIDC_BUTTON2: // 망토제작. { CGuild *pGuild = g_pPlayer->GetGuild(); if( pGuild ) { if( pGuild->m_nLevel < 4 ) // 4레벨 이하는 망토못만듬. { g_WndMng.OpenMessageBox( prj.GetText( TID_GAME_GUILDNOTLEVEL ), MB_OK, this ); break; } g_DPlay.SendCreateGuildCloak(); } } break; #if __VER < 8 // #ifndef __GUILDCOMBAT_85 case WIDC_BUTTON3: { CGuild *pGuild = g_pPlayer->GetGuild(); // 길드가 존재하고 우승한 길드이면서...그길드의 맴버이면...망토 생성가능 if( pGuild && g_GuildCombatMng.m_uWinGuildId == pGuild->GetGuildId() && pGuild->IsMember( g_pPlayer->m_idPlayer ) ) { CWndGuildBankMessageBox* pBox = new CWndGuildBankMessageBox; g_WndMng.OpenCustomBox( "", pBox ); CString str; str.Format( prj.GetText( TID_GAME_GUILDCOMBAT_MAKE_CLOAK ) ); //"수정요망!! 용망토를 생성하시겠습니까? 1,000페냐의 제작 수수료가 부과됩니다." ); pBox->SetValue( str ); } } break; #endif // __VER < 8 #if __VER >= 11 // __GUILD_BANK_LOG case WIDC_LOG: { CGuild* pGuild = g_pPlayer->GetGuild(); CGuildMember* pGuildMemberl; pGuildMemberl = pGuild->GetMember( g_pPlayer->m_idPlayer ); if( pGuildMemberl && (pGuildMemberl->m_nMemberLv == GUD_MASTER || pGuildMemberl->m_nMemberLv == GUD_KINGPIN) ) { CWndGuildBankLog* pwndbanklog = (CWndGuildBankLog*)GetWndBase(APP_GUILD_BANK_LOG); if(pwndbanklog == NULL) { g_WndMng.m_pWndGuildBankLog = new CWndGuildBankLog(); g_WndMng.m_pWndGuildBankLog->Initialize(this); } else SAFE_DELETE(g_WndMng.m_pWndGuildBankLog); } else g_WndMng.PutString( prj.GetText( TID_GAME_CANNT_USE_GLOG ), NULL, prj.GetTextColor( TID_GAME_CANNT_USE_GLOG ) ); } break; #endif //__GUILD_BANK_LOG } } return CWndNeuz::OnChildNotify( message, nID, pLResult ); }