コード例 #1
0
ファイル: CPremiumPlayerCtrl.cpp プロジェクト: gthgame/gth
void CPremiumPlayerCtrl::
LoadIniFile(const char* szpIniFileName,struct i3client_t::tagPremiumInfo* pPremium)
{


	char AppName[_MAX_PATH];
	char inStr[_MAX_PATH];
	char Session[_MAX_PATH];	

	
	

	
	
	for(int idx=0; idx < i3client_t::tagPremiumInfo::maxmap_number; idx++){

		wsprintf(AppName,"Map%02d",idx);

		
		::GetPrivateProfileString(AppName,"Allow","YES",inStr,_MAX_PATH,szpIniFileName);
		pPremium->Map[idx].Default.bAllow = GetBOOL(inStr);

		
		::GetPrivateProfileString(AppName,"iRemainSecond","2147483647",inStr,_MAX_PATH,szpIniFileName);
		pPremium->Map[idx].Default.iRemainSecond=GetINT(inStr);

		
		::GetPrivateProfileString(AppName,"bDecreseRemainSecond","NO",inStr,_MAX_PATH,szpIniFileName);
		pPremium->Map[idx].Default.bDecreseRemainSecond=GetBOOL(inStr);

		
		::GetPrivateProfileString(AppName,"bDecreseAllRemainSecond","NO",inStr,_MAX_PATH,szpIniFileName);
		pPremium->Map[idx].Default.bDecreseAllRemainSecond = GetBOOL(inStr);

		
		::GetPrivateProfileString(AppName,"fAddExpRatio","1.0f",inStr,_MAX_PATH,szpIniFileName);
		pPremium->Map[idx].Default.fAddExpRatio = GetFLOAT(inStr);

		
		::GetPrivateProfileString(AppName,"fAddGenExpRatio","1.0f",inStr,_MAX_PATH,szpIniFileName);
		pPremium->Map[idx].Default.fAddGenExpRatio = GetFLOAT(inStr);

		
		::GetPrivateProfileString(AppName,"fAddGenCapabilityRatio","1.0f",inStr,_MAX_PATH,szpIniFileName);
		pPremium->Map[idx].Default.fAddGenCapabilityRatio=GetFLOAT(inStr);

		
		::GetPrivateProfileString(AppName,"fAddItemDropRatio","1.0f",inStr,_MAX_PATH,szpIniFileName);
		pPremium->Map[idx].Default.fAddItemDropRatio =GetFLOAT(inStr);

		
		::GetPrivateProfileString(AppName,"fAddNarkRatio","1.0f",inStr,_MAX_PATH,szpIniFileName);
		pPremium->Map[idx].Default.fAddNarkRatio = GetFLOAT(inStr);
		

		pPremium->Map[idx].Cur = pPremium->Map[idx].Default;
	}




	
	wsprintf(AppName,"Gameble");
	
	::GetPrivateProfileString(AppName,"fAddPriceRatio","1.0f",inStr,_MAX_PATH,szpIniFileName);
	pPremium->Gamble.fAddPriceRatio = GetFLOAT(inStr);

	for(idx=0; idx < i3client_t::tagPremiumInfo::tagGamble::maxnum_apperance_item_group; idx++){
		wsprintf(Session,"Group%02d");
		
		::GetPrivateProfileString(AppName,Session,"YES",inStr,_MAX_PATH,szpIniFileName);
		pPremium->Gamble.ItemGroupArray[idx].bApperance=GetBOOL(inStr);
	}



	wsprintf(AppName,"ItemOptionUpgrade");
	
	
	::GetPrivateProfileString(AppName,"iMaxlevel","10",inStr,_MAX_PATH,szpIniFileName);
	pPremium->ItemOptionUpgrade.iMaxlevel = GetINT(inStr);


	
	::GetPrivateProfileString(AppName,"fAddPriceRatio","1.0f",inStr,_MAX_PATH,szpIniFileName);
	pPremium->ItemOptionUpgrade.fAddPriceRatio = GetFLOAT(inStr);	

	
	
	wsprintf(AppName,"Die");
	
	::GetPrivateProfileString(AppName,"fExpRatio","1.0f",inStr,_MAX_PATH,szpIniFileName);
	pPremium->Die.fExpRatio = GetFLOAT(inStr);
	
	
	::GetPrivateProfileString(AppName,"fNakRatio","1.0f",inStr,_MAX_PATH,szpIniFileName);
	pPremium->Die.fNakRatio = GetFLOAT(inStr);
	



	
	
	::GetPrivateProfileString("PremiumBooth","Use","FALSE",inStr,_MAX_PATH,szpIniFileName);
	pPremium->bCreatePremiumBooth = GetBOOL(inStr);
	


	
	
	::GetPrivateProfileString("ItemCraft","iMaxLevel","10",inStr,_MAX_PATH,szpIniFileName);
	pPremium->iMaxLevelItemCraft = GetINT(inStr);
	


	
	
	::GetPrivateProfileString("ItemPrecocity","TimeRatio","1.0f",inStr,_MAX_PATH,szpIniFileName);
	pPremium->fItemPrecocityTimeRatio = GetFLOAT(inStr);
	


	
	
	::GetPrivateProfileString("ItemRecycle","Use","YES",inStr,_MAX_PATH,szpIniFileName);
	pPremium->bItemRecycle = GetBOOL(inStr);

	
	pPremium->GonyounPracticeBattle.lDate = time(NULL);
	
	::GetPrivateProfileString("GonyounPracticeBattle","iMaxCount","5",inStr,_MAX_PATH,szpIniFileName);
	pPremium->GonyounPracticeBattle.iMaxCount = GetINT(inStr);	
	pPremium->GonyounPracticeBattle.iDecreseCount = pPremium->GonyounPracticeBattle.iMaxCount;



	
	pPremium->WorldChatting.lDate = time(NULL);
	
	::GetPrivateProfileString("WorldChatting","iMaxCount","10",inStr,_MAX_PATH,szpIniFileName);
	pPremium->WorldChatting.iMaxCount = GetINT(inStr);	
	pPremium->WorldChatting.iDecreaseCount = pPremium->WorldChatting.iMaxCount;




	
	
	::GetPrivateProfileString("Status","iDefaultInitCount","1",inStr,_MAX_PATH,szpIniFileName);
	pPremium->Status.iDefaultInitCount= GetINT(inStr);
	
	
	::GetPrivateProfileString("Status","iInitCount","1000",inStr,_MAX_PATH,szpIniFileName);
	pPremium->Status.iInitCount=GetINT(inStr);

}
コード例 #2
0
HRESULT CModuleConfiguration::GetConfig(IHttpContext* context, CModuleConfiguration** config)
{
	HRESULT hr;
	CModuleConfiguration* c = NULL;
	IAppHostElement* section = NULL;
	LPWSTR commandLine = NULL;
	size_t i;

	CheckNull(config);

	*config = (CModuleConfiguration*)context->GetMetadata()->GetModuleContextContainer()->GetModuleContext(moduleId);

	if (NULL == *config)
	{
		ErrorIf(NULL == (c = new CModuleConfiguration()), ERROR_NOT_ENOUGH_MEMORY);
		
		CheckError(GetConfigSection(context, &section));		
		CheckError(GetDWORD(section, L"maxPendingRequestsPerApplication", &c->maxPendingRequestsPerApplication));
		CheckError(GetDWORD(section, L"asyncCompletionThreadCount", &c->asyncCompletionThreadCount));
		CheckError(GetDWORD(section, L"maxProcessCountPerApplication", &c->maxProcessCountPerApplication));
		CheckError(GetDWORD(section, L"maxConcurrentRequestsPerProcess", &c->maxConcurrentRequestsPerProcess));
		CheckError(GetDWORD(section, L"maxNamedPipeConnectionRetry", &c->maxNamedPipeConnectionRetry));
		CheckError(GetDWORD(section, L"namedPipeConnectionRetryDelay", &c->namedPipeConnectionRetryDelay));
		CheckError(GetDWORD(section, L"initialRequestBufferSize", &c->initialRequestBufferSize));
		CheckError(GetDWORD(section, L"maxRequestBufferSize", &c->maxRequestBufferSize));
		CheckError(GetDWORD(section, L"uncFileChangesPollingInterval", &c->uncFileChangesPollingInterval));
		CheckError(GetDWORD(section, L"gracefulShutdownTimeout", &c->gracefulShutdownTimeout));
		CheckError(GetDWORD(section, L"logFileFlushInterval", &c->logFileFlushInterval));
		CheckError(GetDWORD(section, L"maxLogFileSizeInKB", &c->maxLogFileSizeInKB));
		CheckError(GetBOOL(section, L"loggingEnabled", &c->loggingEnabled));
		CheckError(GetBOOL(section, L"appendToExistingLog", &c->appendToExistingLog));
		CheckError(GetString(section, L"logDirectoryNameSuffix", &c->logDirectoryNameSuffix));
		CheckError(GetString(section, L"debuggerPortRange", &c->debugPortRange));
		CheckError(GetString(section, L"debuggerPathSegment", &c->debuggerPathSegment));
		c->debuggerPathSegmentLength = wcslen(c->debuggerPathSegment);
		CheckError(GetString(section, L"nodeProcessCommandLine", &commandLine));
		ErrorIf(NULL == (c->nodeProcessCommandLine = new char[MAX_PATH]), ERROR_NOT_ENOUGH_MEMORY);
		ErrorIf(0 != wcstombs_s(&i, c->nodeProcessCommandLine, (size_t)MAX_PATH, commandLine, _TRUNCATE), ERROR_INVALID_PARAMETER);
		delete [] commandLine;
		commandLine = NULL;
		
		section->Release();
		section = NULL;
		
		// CR: check for ERROR_ALREADY_ASSIGNED to detect a race in creation of this section 
		// CR: refcounting may be needed if synchronous code paths proove too long (race with config changes)
		context->GetMetadata()->GetModuleContextContainer()->SetModuleContext(c, moduleId);
		*config = c;
		c = NULL;
	}

	return S_OK;
Error:

	if (NULL != section)
	{
		section->Release();
		section = NULL;
	}

	if (NULL != commandLine)
	{
		delete [] commandLine;
		commandLine = NULL;
	}

	if (NULL != c)
	{
		delete c;
		c = NULL;
	}

	return hr;
}