//------------------------------------------------------------------------------ // CUISiegeWarfareDoc::RemainFiledTime // Explain: 야전전투가 종료되기 5분전부터 1분 간격으로 공성에 참여한 유저에게 전체공지 // Date : 2005-07-06,Author: Lee Ki-hwan //------------------------------------------------------------------------------ void CUISiegeWarfareDoc::RemainFiledTime( int nZoneIndex, int nRemainSec ) { m_nZoneIndex = nZoneIndex; SetLeftTime( nRemainSec ); CTString strMessage; strMessage.PrintF(_S( 2016, "[%s]지역 [야전전투]가 %d분 남았습니다." ), CZoneInfo::getSingleton()->GetZoneName( nZoneIndex ), (m_lLeftTime) / 60); // [2012/06/04 : Sora] ITS 8986 공성시작전 공성시작 지점으로 이동 시 캐릭터 이동불가 상태 발생 수정 // 공성 메시지 출력하면서 해당 UI를 활성화 시켜주어햐 한다. 공성 메시지 출력 방식 변경 CUIManager::getSingleton()->GetSiegeWarfare()->SetNotice( strMessage ); }
//------------------------------------------------------------------------------ // CUISiegeWarfareDoc::UpdatePoint // Explain: 전투 중 갱신되는 점수 // Date : 2005-07-06,Author: Lee Ki-hwan //------------------------------------------------------------------------------ void CUISiegeWarfareDoc::UpdatePoint( int nRemainSec, SGuild Guild1, SGuild Guild2, SGuild Guild3, int nMyPoint, int nDefensPoint ) { m_gdGuild[0] = Guild1; m_gdGuild[1] = Guild2; m_gdGuild[2] = Guild3; m_nGuildPoint = nMyPoint; m_gdDefGuild.m_nPoint = nDefensPoint; SetLeftTime( nRemainSec ); }
void COpenLock::ScheduleLeftTime(float dt) { if (m_nLeftTime>=0) { m_pCountNum->setString(CCString::createWithFormat("%d",GetLeftTime())->getCString()); SetLeftTime(GetLeftTime()-1); } else { unschedule(SEL_SCHEDULE(&COpenLock::ScheduleLeftTime)); gGameUILayer->close(this); } }
//------------------------------------------------------------------------------ // WSS_DRATAN_SIEGEWARFARE 070725 // Explain: 공성 상황 알림(공지) 및 전투상황 셋팅 for Dratan //------------------------------------------------------------------------------ void CUISiegeWarfareDoc::CastleState( int nZoneIndex, int nState, int nGateState, int nRemainSec) { SetGateState( 0, nGateState ); if( _pNetwork->MyCharacterInfo.sbJoinFlagDratan == WCJF_NONE ) return; m_nZoneIndex = nZoneIndex; if( nState == WCSF_WAR_CASTLE ) { // 공성중 세팅 CUIManager::getSingleton()->GetSiegeWarfareNew()->SetWarState(TRUE); } else return; SetLeftTime( nRemainSec ); RestartEffect(nZoneIndex); RestartGuildMasterEffect(); }
void COpenLock::ResetLockInfo() { Open_lockCfg* lockCfg = OpenLockData.get(GetLockId()); if(!lockCfg) return; int randRange = abs(lockCfg->random_min)+lockCfg->random_max; srand (time(NULL)); m_openDegreeMin = rand()%randRange + 1; if(m_openDegreeMin>lockCfg->random_max) { m_openDegreeMin = lockCfg->random_max - m_openDegreeMin; } m_openDegreeMax = m_openDegreeMin + lockCfg->section; m_openDegreeMiddle = (m_openDegreeMin+m_openDegreeMax)/2; SetMaxTime(lockCfg->max_time); SetLeftTime(lockCfg->max_time); unschedule(SEL_SCHEDULE(&COpenLock::ScheduleLeftTime)); schedule(SEL_SCHEDULE(&COpenLock::ScheduleLeftTime),1.0f,GetMaxTime()+1,0.0f); }
//------------------------------------------------------------------------------ // CUISiegeWarfareDoc::CastleState // Explain: 공성 상황 알림(공지) 및 전투상황 셋팅 // Date : 2005-07-06,Author: Lee Ki-hwan //------------------------------------------------------------------------------ void CUISiegeWarfareDoc::CastleState( int nZoneIndex, int nState, int nGateState, int nRemainSec, SGuild Guild1, SGuild Guild2, SGuild Guild3, int nMyPoint, int nDefensPoint ) { // Date : 2005-07-22(오전 10:00:32), By Lee Ki-hwan // 비 참가자인 경우에는 SetGateState( 0, nGateState ); if( _pNetwork->MyCharacterInfo.sbJoinFlagMerac == WCJF_NONE ) return; m_nZoneIndex = nZoneIndex; m_gdGuild[0] = Guild1; m_gdGuild[1] = Guild2; m_gdGuild[2] = Guild3; m_nGuildPoint = nMyPoint; m_gdDefGuild.m_nPoint = nDefensPoint; CUIManager* pUIManager = CUIManager::getSingleton(); if( nState == WCSF_WAR_FIELD ) { pUIManager->GetSiegeWarfare()->OpenSelectBattle(); } else if( nState == WCSF_WAR_CASTLE ) { pUIManager->GetSiegeWarfare()->OpenBattle(); } else { return; } SetLeftTime( nRemainSec ); RestartEffect(nZoneIndex); RestartGuildMasterEffect(); }
//------------------------------------------------------------------------------ // CUISiegeWarfareDoc::StartCastle // Explain: 야전끝 공성 시작 알림(공지) // Date : !2005-07-06,Author: Lee Ki-hwan //------------------------------------------------------------------------------ void CUISiegeWarfareDoc::StartCastle( int nZoneIndex, int nRemainSec, int GuildIndex1, CTString GuildName1, int GuildIndex2, CTString GuildName2, int GuildIndex3, CTString GuildName3 ) { CUIManager* pUIManager = CUIManager::getSingleton(); if(nZoneIndex == 7) { // 공성이 시작되면 모든 문을 닫아 둔다. // FIXME : 문 닫아주기. ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 0, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 1, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 2, FALSE ); if( _pNetwork->MyCharacterInfo.sbJoinFlagMerac == WCJF_NONE ) return; if( g_slZone == 7 ) ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->PlayBGM( MUSIC_CASTLE_BATTLE ); _pNetwork->SendCastleMapRecent(); m_nZoneIndex = nZoneIndex; m_gdGuild[0].SetGuildInfo( GuildIndex1, GuildName1 ); m_gdGuild[1].SetGuildInfo( GuildIndex2, GuildName2 ); m_gdGuild[2].SetGuildInfo( GuildIndex3, GuildName3 ); CTString strMessage1, strMessage2; for( int i = 0; i< 3; i++ ) { if( m_gdGuild[i].m_nGuildIndex > 0 ) { if( i >= 1 ) { strMessage1 += ", "; } strMessage1 += m_gdGuild[i].m_strGuildName; strMessage1 += CTString(" "); strMessage1 += _S(75 , "길드" ); } } strMessage1 += _S( 2014, "가 공성측 길드로 선정 되었습니다." ); strMessage2.PrintF(_S( 2015, "성주의 권좌가 얼마 남지 않았습니다. 진격하십시오." ) ); // [2012/06/04 : Sora] ITS 8986 공성시작전 공성시작 지점으로 이동 시 캐릭터 이동불가 상태 발생 수정 // 공성 메시지 출력하면서 해당 UI를 활성화 시켜주어햐 한다. 공성 메시지 출력 방식 변경 pUIManager->GetSiegeWarfare()->SetNotice( strMessage1, strMessage2 ); pUIManager->GetSiegeWarfare()->OpenBattle(); RestartEffect(nZoneIndex); RestartGuildMasterEffect(); SetLeftTime( nRemainSec ); //SetDealy(); } else if(nZoneIndex ==4 ) { // WSS_DRATAN_SIEGEWARFARE 0070725 // TODO :: 드라탄 공성 시작 루틴 // 공성이 시작되면 모든 문을 닫아 둔다. ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 3, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 4, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 5, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 6, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 7, FALSE ); CTString strMessage =_S( 3684,"공성이 시작되었습니다." ); // [2012/06/04 : Sora] ITS 8986 공성시작전 공성시작 지점으로 이동 시 캐릭터 이동불가 상태 발생 수정 // 공성 메시지 출력하면서 해당 UI를 활성화 시켜주어햐 한다. 공성 메시지 출력 방식 변경 CUIManager::getSingleton()->GetSiegeWarfare()->SetNotice( strMessage ); pUIManager->GetSiegeWarfareNew()->SetWarState(TRUE); m_nZoneIndex = nZoneIndex; RestartEffect(nZoneIndex); } }
//------------------------------------------------------------------------------ // CUISiegeWarfareDoc::GuildWarStart // Explain: // Date : 2005-07-06,Author: Lee Ki-hwan //------------------------------------------------------------------------------ void CUISiegeWarfareDoc::GuildWarStart( int nZoneIndex, int nRemainSec ) { CUIManager* pUIManager = CUIManager::getSingleton(); if(nZoneIndex == 7) { // FIXME : 문 닫아주기. ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 0, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 1, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 2, FALSE ); if( _pNetwork->MyCharacterInfo.sbJoinFlagMerac == WCJF_NONE ) return; if( g_slZone == 7 ) ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->PlayBGM( MUSIC_CASTLE_BATTLE ); Clear(); _pNetwork->SendCastleMapRecent(); m_nZoneIndex = nZoneIndex; CTString strMessage, strMessage2; strMessage.PrintF(_S(2012, "[%s]지역 [%s]공성이 시작됩니다." ), CZoneInfo::getSingleton()->GetZoneName( nZoneIndex ), GetCastleName( nZoneIndex )); strMessage2.PrintF(_S(2013, "[%s]지역 내에 있는 공성 참여 유저들은 공성 시작 지점으로 이동합니다."), CZoneInfo::getSingleton()->GetZoneName( nZoneIndex )); // [2012/06/04 : Sora] ITS 8986 공성시작전 공성시작 지점으로 이동 시 캐릭터 이동불가 상태 발생 수정 // 공성 메시지 출력하면서 해당 UI를 활성화 시켜주어햐 한다. 공성 메시지 출력 방식 변경 pUIManager->GetSiegeWarfare()->SetNotice( strMessage, strMessage2 ); pUIManager->GetSiegeWarfare()->OpenSelectBattle(); RestartEffect(nZoneIndex); RestartGuildMasterEffect(); SetLeftTime( nRemainSec ); m_tmLeftTime = _pTimer->GetHighPrecisionTimer().GetMilliseconds(); //SetDealy(); } else if( nZoneIndex == 4) { // WSS_DRATAN_SIEGEWARFARE 0070725 // TODO :: 드라탄 공성 시작 루틴 ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 3, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 4, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 5, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 6, FALSE ); ((CPlayerEntity*)CEntity::GetPlayerEntity(0))->OpenGate( 7, FALSE ); CTString strMessage; strMessage.PrintF( _S( 2012, "[%s]지역 공성이 시작됩니다." ), CZoneInfo::getSingleton()->GetZoneName( nZoneIndex )); // [2012/06/04 : Sora] ITS 8986 공성시작전 공성시작 지점으로 이동 시 캐릭터 이동불가 상태 발생 수정 // 공성 메시지 출력하면서 해당 UI를 활성화 시켜주어햐 한다. 공성 메시지 출력 방식 변경 pUIManager->GetSiegeWarfare()->SetNotice( strMessage ); m_nZoneIndex = nZoneIndex; RestartEffect(nZoneIndex); } }