예제 #1
0
void SQLClass::QuestUpdate(int aIndex,int iKillMob,int iMobCount,char *szQuestName,char *szQuestInfo)
{
	GOBJSTRUCT *gObj = (GOBJSTRUCT*)OBJECT_POINTER(aIndex);
	
	char szQueryBuff[1024];
	char szQueryBuff2[1024];
	char szQueryBuff3[1024];
	char szQueryBuff4[1024];
	char szQueryBuff5[1024];
	unsigned int MailMemoCount;
	unsigned int MailMemoTotal;
	unsigned int MemoGUID;

	wsprintfA(szQueryBuff, "SELECT MAX(MemoCount) AS MemoCount FROM T_FriendMain");
	PointsSql.Execute(szQueryBuff, &rsSql, true);
	rsSql.Fetch();
	MailMemoCount = rsSql.Values("MemoCount").ToIntegerU();
	rsSql.Close();

	MailMemoCount += 1;
	//Messages.outNormal(aIndex,"MailCount %d",MailMemoCount);

	wsprintfA(szQueryBuff2, "SELECT MemoTotal FROM T_FriendMain WHERE Name = '%s';", gObj->Name);
	PointsSql.Execute(szQueryBuff2, &rsSql, true);
	rsSql.Fetch();
	MailMemoTotal = rsSql.Values("MemoTotal").ToIntegerU();
	rsSql.Close();

	MailMemoTotal += 1;
	//Messages.outNormal(aIndex,"MemoTotal %d",MailMemoTotal);

	wsprintfA(szQueryBuff3, "SELECT GUID FROM T_FriendMain WHERE Name = '%s';", gObj->Name);
	PointsSql.Execute(szQueryBuff3, &rsSql, true);
	rsSql.Fetch();
	MemoGUID = rsSql.Values("GUID").ToIntegerU();
	rsSql.Close();
	//Messages.outNormal(aIndex,"GUID %d",MemoGUID);



	//Send Mail with Quest Info
	char QuestInfo[300];
	wsprintfA(QuestInfo,"Quest completed, go to Quest Manager for reward!");
	wsprintfA(szQueryBuff4, "INSERT INTO %s.dbo.T_FriendMail (MemoIndex,GUID,FriendName,wDate,Subject,bRead,Memo,Photo,Dir,Act) VALUES (%d,%d,'Manager',GetDate(),'%s',0,convert(varbinary(1000),'%s'),0x3006FF22222F1FFFC703FC0040F111110000,143,2)",m_SqlConn.sDatabase,MailMemoCount,MemoGUID,szQuestName,QuestInfo);
	PointsSql.Execute(szQueryBuff4, &rsSql, true);
	rsSql.Close();

	//Update Mail Count
	wsprintfA(szQueryBuff5, "UPDATE %s.dbo.T_FriendMain SET MemoCount='%d',MemoTotal='%d' WHERE Name='%s'",m_SqlConn.sDatabase,MailMemoCount,MailMemoTotal,gObj->Name);
	PointsSql.Execute(szQueryBuff5, &rsSql, true);
	rsSql.Close();
	
	//Update Mail
	FriendMemoListReq(aIndex);

}
예제 #2
0
void SQLClass::SendMail(int aIndex,char *szQuestName,char *szQuestInfo)
{
	GOBJSTRUCT *gObj = (GOBJSTRUCT*)OBJECT_POINTER(aIndex);


	char szQueryBuff[1024];
	char szQueryBuff2[1024];
	char szQueryBuff3[1024];
	unsigned int MailMemoCount;
	unsigned int MailMemoTotal;
	unsigned int MemoGUID;


	wsprintfA(szQueryBuff, "SELECT MAX(MemoCount) AS MemoCount FROM T_FriendMain;");
	PointsSql.Execute(szQueryBuff, &rsSql, true);
	rsSql.Fetch();
	MailMemoCount = rsSql.Values("MemoCount").ToIntegerU();
	rsSql.Close();

	MailMemoCount += 1;


	wsprintfA(szQueryBuff2, "SELECT MemoTotal FROM T_FriendMain WHERE Name = '%s';", gObj->Name);
	PointsSql.Execute(szQueryBuff2, &rsSql, true);
	rsSql.Fetch();
	MailMemoTotal = rsSql.Values("MemoTotal").ToIntegerU();
	rsSql.Close();

	MailMemoTotal += 1;
	

	wsprintfA(szQueryBuff3, "SELECT GUID FROM T_FriendMain WHERE Name = '%s';", gObj->Name);
	PointsSql.Execute(szQueryBuff3, &rsSql, true);
	rsSql.Fetch();
	MemoGUID = rsSql.Values("GUID").ToIntegerU();
	rsSql.Close();
	


	char sSQL[2048] = {0};
	wsprintf(sSQL,"INSERT INTO %s.dbo.T_FriendMail (MemoIndex,GUID,FriendName,wDate,Subject,bRead,Memo,Photo,Dir,Act) VALUES (%d,%d,'Manager',GetDate(),'%s',0,convert(varbinary(1000),'%s'),0x3006FF22222F1FFFC703FC0040F111110000,143,2)",m_SqlConn.sDatabase,MailMemoCount,MemoGUID,szQuestName,szQuestInfo);
	PointsSql.Execute(sSQL, &rsSql, true);
	rsSql.Close();

	char sSQL2[1024] = {0};
	wsprintf(sSQL2,"UPDATE %s.dbo.T_FriendMain SET MemoCount='%d',MemoTotal='%d' WHERE Name='%s'", m_SqlConn.sDatabase,MailMemoCount,MailMemoTotal,gObj->Name);
	PointsSql.Execute(sSQL2, &rsSql, true);
	rsSql.Close();
	//Update Mail
	FriendMemoListReq(aIndex);
	Messages.outOlive(aIndex,"You have new Mail from system");

}
예제 #3
0
short SQLClass::ReturnShort(char *szField,char *szQuery)
{
	PointsSql.Execute(szQuery, &rsSql, true);
	rsSql.Fetch();
	short value = rsSql.Values(szField).ToIntegerS();
	rsSql.Close();
	return value;
}
예제 #4
0
char* SQLClass::ReturnString(char *szField,char *szQuery)
{
	static char szRetString[1024];
	PointsSql.Execute(szQuery, &rsSql, true);
	rsSql.Fetch();
	strcpy_s(szRetString,rsSql.Values(szField).ToString());
	rsSql.Close();
	return szRetString;

}
예제 #5
0
int SQL_DelChar(char* PlayerName)
{
	char sSQL[1024] = {0};
	wsprintf(sSQL,"SELECT %s FROM [%s].[dbo].[Character] where %s='%s'", sql_zscountcol,sql_databasemu,sql_zscountcolname,PlayerName);
	
	if(!MsSQL.Execute(sSQL, &MyRS))	{
		DebugInfo("Failed to execute the SQL statement",99);
		//MsgBox("Failed to execute the SQL statement.\n");
		MessageBox(NULL,"Failed to execute the SQL statement","OGC-Servers",MB_OK);
			::ExitProcess(0);
		return false;
	}

	char sBuf[1024] = {0};
	int iBufSz = 0;

	while(MyRS.Fetch()) {
		MyRS.sColumnEx(1,sBuf, sizeof(sBuf), &iBufSz);
	}
	
	int DelChar = atoi(sBuf);
	MyRS.Close();
	return DelChar;
}
예제 #6
0
void SQLClass::DoQuery(char *szQuery)
{
	//PointsSql.Execute(szQuery);
	PointsSql.Execute(szQuery, &rsSql, true);
	rsSql.Close();
}