⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 handler_commondb.cpp

📁 真正的传奇源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	if (pRec->Execute( szQuery ))
	{
			if (pRec->Fetch())
				g_nNumOfMonRaceInfo = atoi( pRec->Get( "FLD_COUNT" ) );
	}

	g_pConnCommon->DestroyRecordset( pRec );

	if (g_nNumOfMonRaceInfo < 0) return;

	g_pMonRaceInfo = new CMonRaceInfo[g_nNumOfMonRaceInfo];

	sprintf( szQuery, "SELECT * FROM TBL_MONSTER ORDER BY FLD_INDEX");

	pRec = g_pConnCommon->CreateRecordset();
	
	if (pRec->Execute( szQuery ))
	{
		for (int i = 0; i < g_nNumOfMonRaceInfo; i++)
		{
			if (pRec->Fetch())								 
			{
				g_pMonRaceInfo[i].nIndex	= i;

				strcpy(g_pMonRaceInfo[i].szMonName, pRec->Get( "FLD_NAME" ) );
				ChangeSpaceToNull(g_pMonRaceInfo[i].szMonName);

				g_pMonRaceInfo[i].nMonRace		= atoi( pRec->Get( "FLD_RACE" ) );
				g_pMonRaceInfo[i].nAppear		= atoi( pRec->Get( "FLD_APPR" ) );

				g_pMonRaceInfo[i].btUndead		= (BYTE)atoi( pRec->Get( "FLD_UNDEAD" ) );
				g_pMonRaceInfo[i].Level			= (BYTE)atoi( pRec->Get( "FLD_LEVEL" ) );

				g_pMonRaceInfo[i].HP			= atoi( pRec->Get( "FLD_HP" ) );
				g_pMonRaceInfo[i].MP			= atoi( pRec->Get( "FLD_MP" ) );

				g_pMonRaceInfo[i].AC			= atoi( pRec->Get( "FLD_AC" ) );
				g_pMonRaceInfo[i].MAC			= atoi( pRec->Get( "FLD_MAC" ) );
				g_pMonRaceInfo[i].DC			=  MAKEWORD((BYTE)atoi( pRec->Get( "FLD_DC" ) ), (BYTE)atoi( pRec->Get( "FLD_MAXDC" ) ));

				g_pMonRaceInfo[i].dwAttackSpeed = atoi( pRec->Get( "FLD_ATTACKSPEED" ) );
				g_pMonRaceInfo[i].dwWalkSpeed	= atoi( pRec->Get( "FLD_WALKSPEED" ) );

				g_pMonRaceInfo[i].Speed			= atoi( pRec->Get( "FLD_SPEED" ) );
				g_pMonRaceInfo[i].Hit			= atoi( pRec->Get( "FLD_HIT" ) );

				g_pMonRaceInfo[i].ViewRange		= (BYTE)atoi( pRec->Get( "FLD_VIEWRANGE" ) );

				g_pMonRaceInfo[i].wRaceIndex	= atoi( pRec->Get( "FLD_RACEINDEX" ) );

				g_pMonRaceInfo[i].Exp			= atoi( pRec->Get( "FLD_EXP" ) );

				g_pMonRaceInfo[i].wEscape		= atoi( pRec->Get( "FLD_ESCAPE" ) );

				g_pMonRaceInfo[i].m_wWater		= MAKEWORD((BYTE)atoi( pRec->Get( "FLD_WATER1" ) ), (BYTE)atoi( pRec->Get( "FLD_WATER2" ) ));
				g_pMonRaceInfo[i].m_wFire		= MAKEWORD((BYTE)atoi( pRec->Get( "FLD_FIRE1" ) ), (BYTE)atoi( pRec->Get( "FLD_FIRE2" ) ));
				g_pMonRaceInfo[i].m_wWind		= MAKEWORD((BYTE)atoi( pRec->Get( "FLD_WIND1" ) ), (BYTE)atoi( pRec->Get( "FLD_WIND2" ) ));
				g_pMonRaceInfo[i].m_wLight		= MAKEWORD((BYTE)atoi( pRec->Get( "FLD_LIGHT1" ) ), (BYTE)atoi( pRec->Get( "FLD_LIGHT2" ) ));
				g_pMonRaceInfo[i].m_wEarth		= MAKEWORD((BYTE)atoi( pRec->Get( "FLD_EARTH1" ) ), (BYTE)atoi( pRec->Get( "FLD_EARTH2" ) ));
			}
		}

		InsertLogMsgParam(IDS_FETCH_MONSTER, &g_nNumOfMonRaceInfo, LOGPARAM_INT);
	}

	g_pConnCommon->DestroyRecordset( pRec );

	InitMonItemInfo();
}

void InitMerchantInfo()
{
	char szQuery[1024];

	CRecordset *pRec = g_pConnCommon->CreateRecordset();
	sprintf( szQuery, "SELECT COUNT(*) AS FLD_COUNT FROM TBL_MERCHANT");

	if (pRec->Execute( szQuery ))
	{
			if (pRec->Fetch())
				g_nNumOfMurchantInfo = atoi( pRec->Get( "FLD_COUNT" ) );
	}

	g_pConnCommon->DestroyRecordset( pRec );

	if (g_nNumOfMurchantInfo < 0) return;

	g_pMerchantInfo = new CMerchantInfo[g_nNumOfMurchantInfo];

	sprintf( szQuery, "SELECT * FROM TBL_MERCHANT ORDER BY FLD_ID");

	pRec = g_pConnCommon->CreateRecordset();
	
	if (pRec->Execute( szQuery ))
	{
		for (int i = 0; i < g_nNumOfMurchantInfo; i++)
		{
			if (pRec->Fetch())								 
			{
				strcpy(g_pMerchantInfo[i].szNPCName, pRec->Get( "FLD_NPCNAME" ) );
				ChangeSpaceToNull(g_pMerchantInfo[i].szNPCName);
				strcpy(g_pMerchantInfo[i].szMapName, pRec->Get( "FLD_MAPNAME" ) );
				ChangeSpaceToNull(g_pMerchantInfo[i].szMapName);

				g_pMerchantInfo[i].nPosX = atoi( pRec->Get( "FLD_POSX" ) );
				g_pMerchantInfo[i].nPosY = atoi( pRec->Get( "FLD_POSY" ) );
				g_pMerchantInfo[i].sFace = atoi( pRec->Get( "FLD_FACE" ) );
				g_pMerchantInfo[i].sBody = atoi( pRec->Get( "FLD_BODY" ) );
				g_pMerchantInfo[i].sGender = atoi( pRec->Get( "FLD_GENDER" ) );
			}
		}

		InsertLogMsgParam(IDS_FETCH_MERCHANT, &g_nNumOfMurchantInfo, LOGPARAM_INT);
	}

	g_pConnCommon->DestroyRecordset( pRec );
}

void InitMagicInfo()
{
	char szQuery[1024];

	CRecordset *pRec = g_pConnCommon->CreateRecordset();
	sprintf( szQuery, "SELECT COUNT(*) AS FLD_COUNT FROM TBL_MAGIC");

	if (pRec->Execute( szQuery ))
	{
			if (pRec->Fetch())
				g_nNumOfMagicInfo = atoi( pRec->Get( "FLD_COUNT" ) );
	}

	g_pConnCommon->DestroyRecordset( pRec );

	if (g_nNumOfMagicInfo < 0) return;

	g_pMagicInfo = new CMagicInfo[g_nNumOfMagicInfo];

	sprintf( szQuery, "SELECT * FROM TBL_MAGIC ORDER BY FLD_INDEX");

	pRec = g_pConnCommon->CreateRecordset();
	
	if (pRec->Execute( szQuery ))
	{
		for (int i = 0; i < g_nNumOfMagicInfo; i++)
		{
			if (pRec->Fetch())								 
			{
				g_pMagicInfo[i].nIndex			= atoi( pRec->Get( "FLD_INDEX" ) );
				
				strcpy(g_pMagicInfo[i].szName, pRec->Get( "FLD_NAME" ) );
				ChangeSpaceToNull(g_pMagicInfo[i].szName);

				g_pMagicInfo[i].sEffectType		= atoi( pRec->Get( "FLD_EFFECTTYPE" ) );
				g_pMagicInfo[i].sEffect			= atoi( pRec->Get( "FLD_EFFECT" ) );
				g_pMagicInfo[i].sSpell			= atoi( pRec->Get( "FLD_SPELL" ) );
				g_pMagicInfo[i].sPower			= atoi( pRec->Get( "FLD_POWER" ) );
				g_pMagicInfo[i].sMaxPower		= atoi( pRec->Get( "FLD_MAXPOWER" ) );
				g_pMagicInfo[i].sDefSpell		= atoi( pRec->Get( "FLD_DEFSPELL" ) );
				g_pMagicInfo[i].sDefPower		= atoi( pRec->Get( "FLD_DEFPOWER" ) );
				g_pMagicInfo[i].sDefMaxPower	= atoi( pRec->Get( "FLD_DEFMAXPOWER" ) );
				g_pMagicInfo[i].sJob			= atoi( pRec->Get( "FLD_JOB" ) );
				g_pMagicInfo[i].sNeed[0]		= atoi( pRec->Get( "FLD_NEEDL1" ) );
				g_pMagicInfo[i].nTrain[0]		= atoi( pRec->Get( "FLD_L1TRAIN" ) );
				g_pMagicInfo[i].sNeed[1]		= atoi( pRec->Get( "FLD_NEEDL2" ) );
				g_pMagicInfo[i].nTrain[1]		= atoi( pRec->Get( "FLD_L2TRAIN" ) );
				g_pMagicInfo[i].sNeed[2]		= atoi( pRec->Get( "FLD_NEEDL3" ) );
				g_pMagicInfo[i].nTrain[2]		= atoi( pRec->Get( "FLD_L3TRAIN" ) );
				g_pMagicInfo[i].sDelay			= atoi( pRec->Get( "FLD_DELAY" ) );
			}
		}

		InsertLogMsgParam(IDS_FETCH_MAGICDATA, &g_nNumOfMagicInfo, LOGPARAM_INT);
	}

	g_pConnCommon->DestroyRecordset( pRec );
}

void InitMoveMapEventInfo()
{
	char szQuery[1024];

	CRecordset *pRec = g_pConnCommon->CreateRecordset();
	sprintf( szQuery, "SELECT COUNT(*) AS FLD_COUNT FROM TBL_MOVEMAPEVENT");

	if (pRec->Execute( szQuery ))
	{
			if (pRec->Fetch())
				g_nNumOfMoveMapEventInfo = atoi( pRec->Get( "FLD_COUNT" ) );
	}

	g_pConnCommon->DestroyRecordset( pRec );

	if (g_nNumOfMoveMapEventInfo < 0) return;

	g_pMoveMapEventInfo = new CMoveMapEventInfo[g_nNumOfMoveMapEventInfo];

	sprintf( szQuery, "SELECT * FROM TBL_MOVEMAPEVENT ORDER BY FLD_INDEX");

	pRec = g_pConnCommon->CreateRecordset();
	
	if (pRec->Execute( szQuery ))
	{
		for (int i = 0; i < g_nNumOfMoveMapEventInfo; i++)
		{
			if (pRec->Fetch())								 
			{
				strcpy(g_pMoveMapEventInfo[i].szSMapFileName, pRec->Get( "FLD_SMAPFILENAME" ) );
				strcpy(g_pMoveMapEventInfo[i].szDMapFileName, pRec->Get( "FLD_DMAPFILENAME" ) );

				g_pMoveMapEventInfo[i].nSX = atoi( pRec->Get( "FLD_SX" ) );
				g_pMoveMapEventInfo[i].nSY = atoi( pRec->Get( "FLD_SY" ) );
				g_pMoveMapEventInfo[i].nDX = atoi( pRec->Get( "FLD_DX" ) );
				g_pMoveMapEventInfo[i].nDY = atoi( pRec->Get( "FLD_DY" ) );

				g_pMoveMapEventInfo[i].fIsOpen = FALSE;
			}
		}

		InsertLogMsgParam(IDS_FETCH_MOVEMAPEVENT, &g_nNumOfMoveMapEventInfo, LOGPARAM_INT);
	}

	g_pConnCommon->DestroyRecordset( pRec );
}

CMagicInfo*	GetMagicInfo(int nMagicID)
{
 	if (g_pMagicInfo[nMagicID].nIndex == nMagicID)
		return &g_pMagicInfo[nMagicID];

	for (int i = 0; i < g_nNumOfMagicInfo; i++)
	{
		if (g_pMagicInfo[i].nIndex == nMagicID)
			return &g_pMagicInfo[i];
	}

	return NULL;
}

CMonsterGenInfo* GetMonGenInfo(char *pszMonName)
{
	int nCmpLen;
	int nLen = memlen(pszMonName) - 1;

	for (int i = 0; i < g_nNumOfMonGenInfo; i++)
	{
		nCmpLen = memlen(g_pMonGenInfo[i].szMonName) - 1;

		if (nCmpLen == nLen)
		{
			if (memcmp(g_pMonGenInfo[i].szMonName, pszMonName, nLen) == 0)
				return &g_pMonGenInfo[i];
		}
	}

	return NULL;
}

CMonRaceInfo* GetMonRaceInfo(char *pszMonName)
{
	int nCmpLen;
	int nLen = memlen(pszMonName) - 1;

	for (int i = 0; i < g_nNumOfMonRaceInfo; i++)
	{
		nCmpLen = memlen(g_pMonRaceInfo[i].szMonName) - 1;

		if (nCmpLen == nLen)
		{
			if (memcmp(g_pMonRaceInfo[i].szMonName, pszMonName, nLen) == 0)
				return &g_pMonRaceInfo[i];
		}
	}

	return NULL;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -