void GJSetPlayerS5QuestInfo(cExtraServer * sManager, int aIndex, SDHP_GETPLAYERS5QUEST_INFOSAVE * lpMsg)
{
	char szName[11]={0};
	memcpy(szName, lpMsg->Name, 10);

	if((SQLSyntexCheck(szName) == TRUE)	&&
	   (SpaceSyntexCheck(szName) == TRUE))
	{

		BOOL bRet = sManager->db.ExecQuery("SELECT Name FROM %s.dbo.SCFS5Quest WHERE Name = '%s' and AccountID= '%s'",sManager->m_DBName, lpMsg->Name, lpMsg->AccountID);
		if ( sManager->db.Fetch() == SQL_NO_DATA || bRet == FALSE )
		{
			sManager->db.Close();
			sManager->db.ExecQuery("INSERT INTO %s.dbo.SCFS5Quest (AccountID, Name) VALUES ('%s','%s')",sManager->m_DBName, lpMsg->AccountID, lpMsg->Name);
			sManager->db.Fetch();
		}
		sManager->db.Close();

		char szTemp[10000];
		wsprintf(szTemp, "UPDATE %s.dbo.SCFS5Quest SET SCFS5Quest=? WHERE Name='%s' and AccountID='%s'",sManager->m_DBName, lpMsg->Name, lpMsg->AccountID);
		sManager->db.SetAsBinary(szTemp, (LPBYTE)lpMsg->S5Quest, sizeof(lpMsg->S5Quest));
		sManager->db.Fetch();
		sManager->db.Close();
	}
}
void GDSetOfficialHelper(cExtraServer * sManager, SDHP_GETPLAYEROFFICIALHELPER_SAVE * lpMsg)
{
	char szName[11]={0};
	memcpy(szName, lpMsg->Name, 10);
	
	if((SQLSyntexCheck(szName) == TRUE)	&&
	   (SpaceSyntexCheck(szName) == TRUE))
	{
		BOOL bRet = sManager->db.ExecQuery("SELECT Name FROM %s.dbo.OfficialHelper WHERE Name = '%s'",sManager->m_DBName, lpMsg->Name);
		if ( sManager->db.Fetch() == SQL_NO_DATA || bRet == FALSE )
		{
			sManager->db.Close();
			sManager->db.ExecQuery("INSERT INTO %s.dbo.OfficialHelper (Name) VALUES ('%s')",sManager->m_DBName, lpMsg->Name);
			sManager->db.Fetch();
			sManager->db.Close();
			char szTemp2[10000];
			wsprintf(szTemp2, "UPDATE %s.dbo.OfficialHelper SET Data=? WHERE Name='%s'",sManager->m_DBName, szName);
			sManager->db.SetAsBinary(szTemp2, (LPBYTE)lpMsg->Data, sizeof(lpMsg->Data));
			sManager->db.Fetch();
		}else
		{
			char szTemp2[10000];
			wsprintf(szTemp2, "UPDATE %s.dbo.OfficialHelper SET Data=? WHERE Name='%s'",sManager->m_DBName, szName);
			sManager->db.SetAsBinary(szTemp2, (LPBYTE)lpMsg->Data, sizeof(lpMsg->Data));
			sManager->db.Fetch();
		}
		sManager->db.Close();
	}
}
void GDGetPlayerCustomQuests(cExtraServer * sManager, int aIndex, SDHP_GETPLAYEREXTRAINFO * lpMsg)
{
	char Name[11] = {0};
	char AccountID[11] = {0};
	memcpy(Name, lpMsg->Name, 10);

	if((SQLSyntexCheck(Name) == TRUE)	&&
	   (SpaceSyntexCheck(Name) == TRUE))
	{
		SDHP_GETPLAYERCUSTOMQUESTS_SAVE pResult = {0};

		PHeadSetW((LPBYTE)&pResult, SCFExDB_GSRecv_GetPlayerCustomQuestsInfo, sizeof(pResult));
		memcpy(pResult.Name, Name, 10);	
		pResult.aIndex = lpMsg->aIndex;

		char szTemp[256];
		BYTE btTemp[CUSTOMQUEST_BINARY_SIZE]={0xFF};

		wsprintf(szTemp, "SELECT SCFCustomQuest FROM %s.dbo.Character where Name = '%s'",sManager->m_DBName, Name);
		if ( sManager->db.GetAsBinary(szTemp, btTemp) == -1 )
			memset(btTemp, -1, sizeof(btTemp));
		memcpy(pResult.CustomQuest, btTemp, sizeof(pResult.CustomQuest));
		sManager->db.Close();

		sManager->DataSend(aIndex, (LPBYTE)&pResult, sizeof(pResult));
	}	
}
void GJDeletePlayerQ5Info(cExtraServer * sManager, int aIndex, SDHP_DELETEPLAYERS5QUEST_INFO * pRecv)
{
	char szName[11]={0};
	memcpy(szName, pRecv->Name, 10);

	if((SQLSyntexCheck(szName) == TRUE)	&&
	   (SpaceSyntexCheck(szName) == TRUE))
	{
		sManager->db.ExecQuery("DELETE FROM %s.dbo.SCFS5Quest WHERE Name = '%s' and AccountID= '%s'",
			sManager->m_DBName, pRecv->Name, pRecv->AccountID);
		sManager->db.Fetch();
		sManager->db.Close();
	}
}
void GDSetPlayerCustomQuests(cExtraServer * sManager, SDHP_GETPLAYERCUSTOMQUESTS_SAVE * lpMsg)
{		
	char szName[11]={0};
	memcpy(szName, lpMsg->Name, 10);
		
	if((SQLSyntexCheck(szName) == TRUE)	&&
	   (SpaceSyntexCheck(szName) == TRUE))
	{
		char szTemp[10000];
		wsprintf(szTemp, "UPDATE %s.dbo.Character SET SCFCustomQuest=? WHERE Name='%s'",sManager->m_DBName, szName);
		sManager->db.SetAsBinary(szTemp, (LPBYTE)lpMsg->CustomQuest, sizeof(lpMsg->CustomQuest));
		sManager->db.Fetch();
		sManager->db.Close();
	}
}
Esempio n. 6
0
BOOL CCastleDBSet::DSDB_QueryGuildMarkRegInfo(int iMapSvrGroup, char* lpszGuildName, CSP_ANS_GUILDREGINFO* lpGuildRegInfo, int* lpiResult)
{
	if (lpszGuildName  == NULL || lpGuildRegInfo == NULL)
	{
		return TRUE;
	}

	if (SQLSyntexCheck(lpszGuildName) == FALSE)
	{
		return TRUE;
	}

	CString qSql;
	
	qSql.Format("EXEC WZ_CS_GetGuildMarkRegInfo %d, '%s'", iMapSvrGroup, lpszGuildName);
	
	if (m_DBQuery.Exec(qSql) == FALSE)
	{
		m_DBQuery.Clear();
		return TRUE;
	}

	short sqlRet = m_DBQuery.Fetch();
	
	if (sqlRet == SQL_NULL_DATA )
	{
		m_DBQuery.Clear();
		return TRUE;
	}

	memcpy(lpGuildRegInfo->szGuildName, lpszGuildName, MAX_GUILDNAMESTRING);
	
	if (sqlRet == SQL_NO_DATA )
	{
		lpGuildRegInfo->iRegMarkCount = 0;
		*lpiResult = 2;
	}
	else
	{
		*lpiResult = 1;
		lpGuildRegInfo->iRegMarkCount = m_DBQuery.GetInt("REG_MARKS");
		lpGuildRegInfo->btRegRank = m_DBQuery.GetInt("SEQ_NUM");
		lpGuildRegInfo->bIsGiveUp = (m_DBQuery.GetInt("IS_GIVEUP") > 0)?true:false;	
	}

	m_DBQuery.Clear();
	return FALSE;
}
Esempio n. 7
0
BOOL CCastleDBSet::DSDB_QueryCastleOwnerChange(int iMapSvrGroup, CSP_REQ_CASTLEOWNERCHANGE* lpCastleOwnerInfo, CSP_ANS_CASTLEOWNERCHANGE* lpCastleOwnerInfoResult, int* lpiResult)
{
	if (lpCastleOwnerInfo == NULL || lpCastleOwnerInfoResult == NULL || lpiResult == NULL)
	{
		return TRUE;
	}

	char szGuildName[MAX_GUILDNAMESTRING+1] = {'\0'};
	memcpy(szGuildName, lpCastleOwnerInfo->szOwnerGuildName, MAX_GUILDNAMESTRING);
	
	if (SQLSyntexCheck(szGuildName) == FALSE)
	{
		return TRUE;
	}

	lpCastleOwnerInfoResult->bIsCastleOccupied = lpCastleOwnerInfo->bIsCastleOccupied;
	memcpy(lpCastleOwnerInfoResult->szOwnerGuildName, lpCastleOwnerInfo->szOwnerGuildName, MAX_GUILDNAMESTRING);
	
	CString qSql;
	qSql.Format("EXEC WZ_CS_ModifyCastleOwnerInfo %d, %d, '%s'", iMapSvrGroup, lpCastleOwnerInfo->bIsCastleOccupied,szGuildName);
	
	if (m_DBQuery.Exec(qSql) == FALSE)
	{
		m_DBQuery.Clear();
		return TRUE;
	}

	short sqlRet = m_DBQuery.Fetch();
	
	if (sqlRet == SQL_NO_DATA || sqlRet == SQL_NULL_DATA )
	{
		m_DBQuery.Clear();
		return TRUE;		
	}

	*lpiResult = m_DBQuery.GetInt("QueryResult");
	
	m_DBQuery.Clear();
	return FALSE;
}
void GDGetPlayerOfficialHelper(cExtraServer * sManager, int aIndex, SDHP_GETPLAYEREXTRAINFO * lpMsg)
{
	char Name[11] = {0};
	char AccountID[11] = {0};
	memcpy(Name, lpMsg->Name, 10);
	memcpy(AccountID, lpMsg->AccountID, 10);

	if((SQLSyntexCheck(Name) == TRUE)	&&
	   (SpaceSyntexCheck(Name) == TRUE))
	{
		SDHP_GETPLAYEROFFICIALHELPER_SAVE pResultOfficialHelper = {0};
		PHeadSetW((LPBYTE)&pResultOfficialHelper, SCFExDB_GSRecv_GetOfficialHelperData, sizeof(pResultOfficialHelper));
		char szTemp3[256];
		BYTE btTemp3[257]={0};

		memcpy(pResultOfficialHelper.AccountID, AccountID, 10);
		memcpy(pResultOfficialHelper.Name, Name, 10);	
		pResultOfficialHelper.aIndex = lpMsg->aIndex;

		BOOL bRet = sManager->db.ExecQuery("SELECT Name FROM %s.dbo.OfficialHelper WHERE Name = '%s'",sManager->m_DBName, Name);
		if ( sManager->db.Fetch() == SQL_NO_DATA || bRet == FALSE )
		{
			memset(btTemp3, 0, sizeof(btTemp3));
			btTemp3[1] = 1;
			btTemp3[2] = 0x11;
			btTemp3[23] = 0x51;
			btTemp3[24] = 0x15;
			btTemp3[26] = 0x20;
		}else
		{
			sManager->db.Close();
			wsprintf(szTemp3, "SELECT Data FROM %s.dbo.OfficialHelper where Name = '%s'",sManager->m_DBName, Name);
			if ( sManager->db.GetAsBinary(szTemp3, btTemp3) == -1 )
				memset(btTemp3, 0, sizeof(btTemp3));
		}
		memcpy(pResultOfficialHelper.Data, btTemp3, sizeof(pResultOfficialHelper.Data));
		sManager->db.Close();
		sManager->DataSend(aIndex, (LPBYTE)&pResultOfficialHelper, sizeof(pResultOfficialHelper));
	}
}
Esempio n. 9
0
BOOL CCastleDBSet::DSDB_QueryGuildMarkRegMark(int iMapSvrGroup, char* lpszGuildName, CSP_ANS_GUILDREGMARK* lpGuildRegMark, int* lpiResult)
{
	if (lpszGuildName == NULL || lpGuildRegMark == NULL)
	{
		return TRUE;
	}

	if ( !SQLSyntexCheck(lpszGuildName) )
	{
		return TRUE;
	}

	CString qSql;
	qSql.Format("EXEC WZ_CS_ReqRegGuildMark %d, '%s'",iMapSvrGroup,lpszGuildName);
	
	if (m_DBQuery.Exec(qSql) == FALSE)
	{
		m_DBQuery.Clear();
		return TRUE;
	}

	short sqlRet = m_DBQuery.Fetch();
	
	if (sqlRet == SQL_NO_DATA || sqlRet == SQL_NULL_DATA )
	{
		m_DBQuery.Clear();
		return TRUE;		
	}
	
	memcpy(lpGuildRegMark->szGuildName, lpszGuildName, MAX_GUILDNAMESTRING);
	
	*lpiResult = m_DBQuery.GetInt("QueryResult");
	
	lpGuildRegMark->iRegMarkCount = m_DBQuery.GetInt("REG_MARKS");
	
	m_DBQuery.Clear();
	
	return FALSE;
}
Esempio n. 10
0
BOOL CCastleDBSet::DSDB_QueryRegAttackGuild(int iMapSvrGroup, CSP_REQ_REGATTACKGUILD* lpRegAttackGuild, CSP_ANS_REGATTACKGUILD* lpRegAttackGuildResult, int* lpiResult)
{
	if (lpRegAttackGuild == NULL || lpRegAttackGuildResult == NULL || lpiResult == NULL)
	{
		return TRUE;
	}

	char szGuildName[MAX_GUILDNAMESTRING+1] = {'\0'};
	memcpy(szGuildName, lpRegAttackGuild->szEnemyGuildName, MAX_GUILDNAMESTRING);
	
	if (SQLSyntexCheck(szGuildName) == FALSE)
	{
		return TRUE;
	}

	memcpy(lpRegAttackGuild->szEnemyGuildName, lpRegAttackGuildResult->szEnemyGuildName, MAX_GUILDNAMESTRING);
	
	CString qSql;
	qSql.Format("EXEC WZ_CS_ReqRegAttackGuild %d, '%s'", iMapSvrGroup, szGuildName);
	
	if (m_DBQuery.Exec(qSql) == FALSE)
	{
		m_DBQuery.Clear();
		return TRUE;
	}

	short sqlRet = m_DBQuery.Fetch();
	
	if (sqlRet == SQL_NO_DATA || sqlRet == SQL_NULL_DATA )
	{
		m_DBQuery.Clear();
		return TRUE;		
	}

	*lpiResult = m_DBQuery.GetInt("QueryResult");
	
	m_DBQuery.Clear();
	return FALSE;
}
Esempio n. 11
0
BOOL CCastleDBSet::DSDB_QueryGuildSetGiveUp(int iMapSvrGroup, char* lpszGuildName, int bIsGiveUp, CSP_ANS_GUILDSETGIVEUP* lpGuildSetGiveUp)
{
	if (lpszGuildName == NULL || lpGuildSetGiveUp == NULL)
	{
		return TRUE;
	}
	
	if (SQLSyntexCheck(lpszGuildName) == FALSE)
	{
		return TRUE;
	}

	CString qSql;
	qSql.Format("EXEC WZ_CS_ModifyGuildGiveUp %d, '%s', %d",iMapSvrGroup,lpszGuildName,bIsGiveUp);
	
	if (m_DBQuery.Exec(qSql) == FALSE)
	{
		m_DBQuery.Clear();
		return TRUE;
	}
	
	short sqlRet = m_DBQuery.Fetch();

	if (sqlRet == SQL_NO_DATA || sqlRet == SQL_NULL_DATA )
	{
		m_DBQuery.Clear();
		return TRUE;		
	}
	
	memcpy(lpGuildSetGiveUp->szGuildName, lpszGuildName, MAX_GUILDNAMESTRING);
	
	lpGuildSetGiveUp->bIsGiveUp = bIsGiveUp;
	lpGuildSetGiveUp->iResult = m_DBQuery.GetInt("QueryResult");
	lpGuildSetGiveUp->iRegMarkCount = m_DBQuery.GetInt("DEL_MARKS");
	
	m_DBQuery.Clear();
	return FALSE;
}
Esempio n. 12
0
void JGCharacterCreateRequest(LPSDHP_CREATECHAR lpMsg,int aIndex)
{
	char szAccountID[MAX_IDSTRING+1];
	char szName[MAX_IDSTRING+1];

	memcpy(szAccountID, lpMsg->AccountId, MAX_IDSTRING);
	memcpy(szName, lpMsg->Name, MAX_IDSTRING);

	szAccountID[MAX_IDSTRING] = 0;
	szName[MAX_IDSTRING] = 0;

	SDHP_CREATECHARRESULT pResult;

	pResult.ClassSkin = lpMsg->ClassSkin;
	pResult.Number = lpMsg->Number;

	memcpy(pResult.AccountId,szAccountID,MAX_IDSTRING);
	memcpy(pResult.Name,szName,MAX_IDSTRING);

	memset(pResult.Equipment,0x00,sizeof(pResult.Equipment));

	if ( SQLSyntexCheck(szName) == FALSE )
	{
		pResult.Result = 0;
	}
	else
	{
		pResult.Result = CreateCharacter(szAccountID,szName,&pResult);
	}

	pResult.h.c = PMHC_BYTE;
	pResult.h.size = sizeof( pResult );
	pResult.h.headcode = 0x04;

	DataSend(aIndex,(LPBYTE)&pResult,pResult.h.size);
}
Esempio n. 13
0
void GDGetPlayerS5Quests(cExtraServer * sManager, int aIndex, SDHP_GETPLAYEREXTRAINFO * lpMsg)
{
	char Name[11] = {0};
	char AccountID[11] = {0};
	memcpy(Name, lpMsg->Name, 10);
	memcpy(AccountID, lpMsg->AccountID, 10);

	if((SQLSyntexCheck(Name) == TRUE)	&&
	   (SpaceSyntexCheck(Name) == TRUE))
	{
		SDHP_GETPLAYERS5QUEST_SAVE pResultS5Q = {0};
		PHeadSetW((LPBYTE)&pResultS5Q, SCFExDB_GSRecv_GetPlayerS5QuestInfo, sizeof(pResultS5Q));

		char szTemp2[10000];
		BYTE btTemp2[(sizeof(S5QUEST)*MAX_QUEST_COUNT)]={0};

		memcpy(pResultS5Q.AccountID, AccountID, 10);
		memcpy(pResultS5Q.Name, Name, 10);	
		pResultS5Q.aIndex = lpMsg->aIndex;

		BOOL bRet = sManager->db.ExecQuery("SELECT Name FROM %s.dbo.SCFS5Quest WHERE Name = '%s' and AccountID = '%s'",sManager->m_DBName, Name, AccountID);
		if ( sManager->db.Fetch() == SQL_NO_DATA || bRet == FALSE )
		{
			memset(btTemp2, 0, sizeof(btTemp2));
		} else 
		{
			sManager->db.Close();
			wsprintf(szTemp2, "SELECT SCFS5Quest FROM %s.dbo.SCFS5Quest where Name = '%s' and AccountID = '%s'",sManager->m_DBName, Name, AccountID);
			if ( sManager->db.GetAsBinary(szTemp2, btTemp2) == -1 )
				memset(btTemp2, 0, sizeof(btTemp2));
		}
		memcpy(pResultS5Q.S5Quest, btTemp2, sizeof(pResultS5Q.S5Quest));
		sManager->db.Close();
		sManager->DataSend(aIndex, (LPBYTE)&pResultS5Q, sizeof(pResultS5Q));
	}
}
Esempio n. 14
0
void GJJoinIdPassRequest(LPSDHP_IDPASS lpMsgIdPass,int aIndex )
{
	char szId[MAX_IDSTRING+1];
#if (S6EP2 == 1 || EX700==1)
	char szPass[20+1];
#else
	char szPass[MAX_IDSTRING+1];
#endif
	char szIpAddress[17];
	char szJoominNumber[21]="";
	BYTE result=0x01;
	int  sbOfs=0;
	int  vNumber=0;
	int  UserNumber=-1;
	int  DBNumber;	
	SDHP_IDPASSRESULT	spResult;

	memset(szId,   0, sizeof(szId));
	memset(szPass, 0, sizeof(szPass));
	memset(szIpAddress, 0, sizeof(szIpAddress));

	memcpy(szId,lpMsgIdPass->Id,MAX_IDSTRING);
	memcpy(szPass,lpMsgIdPass->Pass,20);


	BuxConvert(szId, MAX_IDSTRING);
	BuxConvert(szPass, 20);

	char Block='0';

	if( SQLSyntexCheck(szId) == FALSE || SQLSyntexCheck(szPass) == FALSE || SpaceSyntexCheck(szId) == FALSE)
	{
		result = 0x02;
	}
	else
	{

		EnterCriticalSection(&g_JSData.m_critJoinUser);

		int nRet = IsUser(szId,szPass,szJoominNumber,Block,DBNumber);

		if( nRet == 0 )
		{
			result = 0;
		}

		if(gObjSearchUser(szId) == -1)
		{
			if( nRet == 1 && Block > '0' )
			{
				if( Block == 'A' )
				{
					result=0x0E;
				}
				else if( Block == 'B' )
				{
					result=0x0F;
				}
				else result=0x05;
			}
			else if(nRet == 1)
			{
				UserNumber = gObjAdd(szId,szPass,DBNumber,aIndex,lpMsgIdPass->IpAddress,lpMsgIdPass->Number);

				if(UserNumber < 0)
				{
					result = 0x04;
				}
				else
				{
					gObj[UserNumber].bloc_code = Block;
					memcpy(gObj[UserNumber].JoomingNumber,szJoominNumber,20);
					g_Window.ServerLogAdd(ST_JOINSERVER,"[ %s ] User login",szId);
				}
			}
			else if(nRet == 0)
			{
				result = 0x00;
			}
			else
			{
				result = 0x02;
			}
		}
		else
		{
			if( result == 0 )
			{
				result = 0x03;
			}
			else
			{
				result = 0x06;
			}

			g_Window.ServerLogAdd(ST_JOINSERVER,"[ %s ] [ERROR] User Connected login",szId);
		}

		LeaveCriticalSection(&g_JSData.m_critJoinUser);
	}

	spResult.h.size     = sizeof( spResult );
	spResult.h.c		= PMHC_BYTE;
	spResult.h.headcode = 0x01;
	spResult.result     = result;
	spResult.Number     = lpMsgIdPass->Number;
	spResult.UserNumber = UserNumber;
	spResult.DBNumber   = DBNumber;

	memcpy(spResult.JoominNumber, szJoominNumber, 20);
	memcpy(spResult.Id, szId, MAX_IDSTRING);

	DataSend(aIndex,(LPBYTE)&spResult,spResult.h.size);
}