// 참가 구성원 작성 윈도우 오픈... void CGuildCombat1to1Mng::SendMemberLineUpOpenWnd( CUser* pUser ) { if( m_nState != GC1TO1_OPEN ) { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_NOLINEUP ); return; } int nIndex = GetTenderGuildIndexByUser( pUser ); if( nIndex == NULL_ID ) { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_CANNOT_MAKEUP ); return; } // 길드마스터 또는 킹핀급만 가능 if( !IsGuildMaster( pUser ) ) { CGuild* pGuild = pUser->GetGuild(); if( pGuild ) { CGuildMember* pGuildMember = pGuild->GetMember( pUser->m_idPlayer ); if( pGuildMember->m_nMemberLv != GUD_KINGPIN ) { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_NOLINEUPAUTH ); return; } } } pUser->AddGC1to1MemberLineUpOpenWnd( m_vecTenderGuild[nIndex].vecMemberId ); }
// 참가자 구성 void CGuildCombat1to1Mng::SetMemberLineUp( CUser* pUser, vector<u_long>& vecMemberId ) { if( m_nState != GC1TO1_OPEN ) // 참가자 구성 시간이 아니다. { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_NOLINEUP ); return; } int nIndex = GetTenderGuildIndexByUser( pUser ); if( nIndex == NULL_ID ) // 입찰되지 않았거나 순위에서 밀린 길드 { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_CANNOT_MAKEUP ); return; } if( (int)( vecMemberId.size() ) < m_nMinJoinPlayer ) // 최소 참가자 수보다 적다. { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_LOWMINPLAYER, "%d", m_nMinJoinPlayer ); return; } if( (int)( vecMemberId.size() ) > m_nMaxJoinPlayer ) { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_OVERMAXPLAYER, "%d", m_nMaxJoinPlayer ); return; } // 길드마스터 또는 킹핀급만 가능 CGuild* pGuild = pUser->GetGuild(); if( pGuild ) { CGuildMember* pGuildMember = pGuild->GetMember( pUser->m_idPlayer ); if( pGuildMember ) { if( pGuildMember->m_nMemberLv != GUD_MASTER && pGuildMember->m_nMemberLv != GUD_KINGPIN ) { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_NOLINEUPAUTH ); return; } } } BOOL bMasterOrKingpin = FALSE; // 최소 참가 레벨 검사 for( int i=0; i<(int)( vecMemberId.size() ); i++ ) { CUser* pUserTemp = (CUser*)prj.GetUserByID( vecMemberId[i] ); if( IsValidObj( pUserTemp ) && pUserTemp->GetLevel() < m_nMinJoinPlayerLevel ) { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_LIMIT_LEVEL_NOTICE ); return; } if( IsValidObj( pUserTemp ) && !bMasterOrKingpin ) { CGuildMember* pGuildMember = pGuild->GetMember( pUserTemp->m_idPlayer ); if( pGuildMember ) if( pGuildMember->m_nMemberLv == GUD_MASTER || pGuildMember->m_nMemberLv == GUD_KINGPIN ) bMasterOrKingpin = TRUE; } } if( !bMasterOrKingpin ) { pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_HAVENOT_MASTER ); return; } m_vecTenderGuild[nIndex].vecMemberId.clear(); m_vecTenderGuild[nIndex].vecMemberId = vecMemberId; pUser->AddDefinedText( TID_GAME_GUILDCOMBAT1TO1_LINEUPCOMPLETE ); g_dpDBClient.SendGC1to1LineUp( m_vecTenderGuild[nIndex].ulGuildId, vecMemberId ); }
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 ); }