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

📄 skill_lsw.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	HSTMT		hStmt = NULL;
	RETCODE		retCode;
	SDWORD		cbValue;

	SQLAllocStmt(hDBC, &hStmt);
	retCode = SQLExecDirect(hStmt, (UCHAR *)"Select * from ItemControlPercent order by [no]", SQL_NTS);
	if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
	{		
		int i = 1;
		retCode = SQLFetch(hStmt);
		while( retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
		{
			if(i >= MAX_ITEMCONTROLPERCENT)
			{
				SQLFreeStmt(hStmt, SQL_DROP);
				return false;
			}
/*
			typedef struct ItemControlPercent
			{
				int iNo		
				int	Per[8];//0锅篮 配呕蔼 1~5绰 海捞流 弊缝 6~7篮 饭绢 弊缝
			}ItemControlPercent;
*/
			int column = 0;
			retCode = SQLGetData(hStmt, ++column, SQL_C_LONG,	&ItemControlPercent[i].iNo,	0, &cbValue);
			int iTotal = 0;
			for(int count= 1; count <8; count ++)
			{
				int iDummy = 0;
				retCode = SQLGetData(hStmt,  ++column, SQL_C_LONG,	&iDummy,	0, &cbValue);
				ItemControlPercent[i].per[count] = iDummy;
				iTotal+=iDummy;
			}
			ItemControlPercent[i].per[0] = iTotal;
			i++;
			retCode = SQLFetch(hStmt);
			if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
			{
			}
			else if( retCode == SQL_NO_DATA ) 
			{
				break;
			}
			else
			{
				SQLFreeStmt(hStmt, SQL_DROP);
				return false;
			}
		}	
	}		
	else 
	{
		SQLFreeStmt(hStmt, SQL_DROP);
		return false;
	}
	SQLFreeStmt(hStmt, SQL_DROP);		// 0308 YGI
	return true;
	
}

bool LoadItemFallPercent()//逛冈绊 父甸磊~ 
{
	HSTMT		hStmt = NULL;
	RETCODE		retCode;
	SDWORD		cbValue;

	SQLAllocStmt(hDBC, &hStmt);
	retCode = SQLExecDirect(hStmt, (UCHAR *)"Select * from ItemFallPercent order by [no]", SQL_NTS);
	if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
	{		
		int i = 1;
		retCode = SQLFetch(hStmt);
		while( retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
		{
			if(i >= MAX_ITEMFALLPERCENT) return false;
/*
			typedef struct ItemFallPercent
			{
				int iNo
				int per[21];//0 锅篮 配呕 蔼 捞促
			}ItemFallPercent;
*/
			int column = 0;
			retCode = SQLGetData(hStmt, ++column, SQL_C_LONG,	&ItemFallPercent[i].iNo,	0, &cbValue);
			int iTotal = 0;
			for(int count= 1; count <21; count ++)
			{
				int iDummy = 0;
				retCode = SQLGetData(hStmt,  ++column, SQL_C_LONG,	&iDummy,	0, &cbValue);
				ItemFallPercent[i].per[count] = iDummy;
				iTotal+=iDummy;
			}
			ItemFallPercent[i].per[0] = iTotal;
			i++;
			retCode = SQLFetch(hStmt);
			if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
			{
			}
			else if( retCode == SQL_NO_DATA ) 
			{
				break;
			}
			else
			{
				SQLFreeStmt(hStmt, SQL_DROP);
				return false;
			}
		}	
	}		
	else 
	{
		SQLFreeStmt(hStmt, SQL_DROP);
		return false;
	}
	SQLFreeStmt(hStmt, SQL_DROP);		// 0308 YGI
	return true;
}
bool LoadBasicItemBag()
{
	HSTMT		hStmt = NULL;
	RETCODE		retCode;
	SDWORD		cbValue;

	SQLAllocStmt(hDBC, &hStmt);
	retCode = SQLExecDirect(hStmt, (UCHAR *)"Select * from BasicItemBag order by [no]", SQL_NTS);
	if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
	{		
		int i = 1;
		retCode = SQLFetch(hStmt);
		while( retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
		{
			if(i >= MAX_BASICITEMBAG) 
			{
				SQLFreeStmt(hStmt, SQL_DROP);
				return false;
			}
/*
			typedef struct BasicItemBag
			{
				int iNo;
				int BasicItemPercentTableNo;
				int ItemNo[21];//0锅篮 绝绰蔼
			}BasicItemBag;
*/
			int column = 0;
			retCode = SQLGetData(hStmt, ++column, SQL_C_LONG,	&BasicItemBag[i].iNo,	0, &cbValue);
			retCode = SQLGetData(hStmt, ++column, SQL_C_LONG,	&BasicItemBag[i].iBasicItemPercentTableNo,	0, &cbValue);
//			int iTotal = 0;
			for(int count= 1; count <21; count ++)
			{
				int iDummy = 0;
				retCode = SQLGetData(hStmt,  ++column, SQL_C_LONG,	&iDummy,	0, &cbValue);
				BasicItemBag[i].ItemNo[count] = iDummy;
//				iTotal+=iDummy;
			}
			i++;
			retCode = SQLFetch(hStmt);
			if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
			{
			}
			else if( retCode == SQL_NO_DATA ) 
			{
				break;
			}
			else
			{
				SQLFreeStmt(hStmt, SQL_DROP);
				return false;
			}
		}	
	}		
	else 
	{
		SQLFreeStmt(hStmt, SQL_DROP);
		return false;
	}
	SQLFreeStmt(hStmt, SQL_DROP);		// 0308 YGI
	return true;
}

bool LoadItemControl()
{
	HSTMT		hStmt = NULL;
	RETCODE		retCode;
	SDWORD		cbValue;

	SQLAllocStmt(hDBC, &hStmt);
	retCode = SQLExecDirect(hStmt, (UCHAR *)"Select * from ItemControl order by [no]", SQL_NTS);
	if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
	{		
		int i = 1;
		retCode = SQLFetch(hStmt);
		while( retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
		{
			if(i >= MAX_ITEMCONTROL) 
			{
				SQLFreeStmt(hStmt, SQL_DROP);
				return false;
			}
/*
			typedef struct ItemControl
			{
				int iNo;
				int ItemControlPercentNo;
				int ItemGroup[8];//0锅篮 绝绰蔼 1~5绰 海捞流 弊缝 6~7篮 饭绢 弊缝
				int	iFallItemCount;//冻绢龙 肮荐, 溜, 馆汗巩 龋免 冉荐
			}ItemControl;
*/
			int column = 0;
			retCode = SQLGetData(hStmt, ++column, SQL_C_LONG,	&ItemControl[i].iNo,	0, &cbValue);
			retCode = SQLGetData(hStmt, ++column, SQL_C_LONG,	&ItemControl[i].ItemControlPercentNo,	0, &cbValue);
//			int iTotal = 0;
			for(int count= 1; count <8; count ++)
			{
				int iDummy = 0;
				retCode = SQLGetData(hStmt,  ++column, SQL_C_LONG,	&iDummy,	0, &cbValue);
				ItemControl[i].ItemGroup[count] = iDummy;
//				iTotal+=iDummy;
			}
			retCode = SQLGetData(hStmt, ++column, SQL_C_LONG,	&ItemControl[i].iFallItemCount,	0, &cbValue);
			
			i++;
			retCode = SQLFetch(hStmt);
			if(retCode == SQL_SUCCESS || retCode == SQL_SUCCESS_WITH_INFO)
			{
			}
			else if( retCode == SQL_NO_DATA ) 
			{
				break;
			}
			else
			{
				SQLFreeStmt(hStmt, SQL_DROP);
				return false;
			}
		}	
	}		
	else 
	{
		SQLFreeStmt(hStmt, SQL_DROP);
		return false;
	}
	SQLFreeStmt(hStmt, SQL_DROP);		// 0308 YGI
	return true;
}
extern void SendGameToClientWhoSendMail( char *name );
int HandleCommand2( t_packet *p, t_connection c[], int cn )
{
	switch( p->h.header.type )
	{
	case	CMD_CONFORM_SADONIX:
		{
			SkillMgr.RecvCMD_CONFORM_SADONIX(*p);
		}break;
	case	CMD_MOVE_TO_HOMETOWN:
		{
			if(g_MapPort != 5300)
			{
				CHARLIST *ch = CheckServerId(cn);
				if (ch)
				{
					if (ENABLE_HOMETOWN_LEVEL >= ch->GetLevel() && 0 < ch->GetLevel())
					{	//< CSD-030806
						MoveToHomeTown(ch);
					}	//> CSD-030806
				}
			}
		}break;
	case	CMD_MOVE_TO_HOMETOWN_WITH_ALIVE:
		{
			if(g_MapPort != 5300 && g_MapPort != 5830)//檬焊磊 荐访家啊 酒聪扼搁 //020827 lsw
			{
				CHARLIST *ch = CheckServerId(cn);
				if (ch)
				{
					if (ENABLE_HOMETOWN_LEVEL >= ch->GetLevel() && 0 < ch->GetLevel())
					{	//< CSD-030806
						MoveToHomeTownWithAilve(ch);
					}	//> CSD-030806
				}
			}
		}break;
	case	CMD_COMFORM_RESET_ABILILTY:
		{
			RecvCMD_COMFORM_RESET_ABILITY(*p);
		}break;
	case	CMD_MERCHANT_BUY_ITEM_SEARCH_CLIENT:
		{
			Auction.RecvCMD_MERCHANT_BUY_LIST_REQUEST(cn,*p);
		}break;
	case	CMD_MERCHANT_BUY_ITEM_SEARCH_RESULT:
		{
			if(cn == DB_DEMON)
			{
				Auction.RecvCMD_MERCHANT_BUY_LIST_REQUEST_RESULT(*p);	//叼厚单阁波父 牢沥
			}
			else
			{
				MyLog(0,"Crack CMD_MERCHANT_BUY_ITEM_SEARCH_RESULT");
			}
		}break;
	case	CMD_MERCHANT_SELL_LIST_REQUEST_RESULT:
		{
			if(cn == DB_DEMON)
			{
				Auction.RecvCMD_MERCHANT_SELL_LIST_REQUEST_RESULT(*p);	//叼厚单阁波父 牢沥
			}
			else
			{
				MyLog(0,"Crack CMD_MERCHANT_SELL_LIST_REQUEST_RESULT");
			}
		}break;
	case	CMD_MERCHANT_SELL_ITEM_INFO_REQUEST://努扼捞攫飘 惑牢捞 焊郴绰 菩哦
		{
			Auction.RecvCMD_MERCHANT_SELL_LIST_REQUEST(cn,*p);
		}break;
	case CMD_MERCHANT_ITEM_BUY	://努扼捞攫飘肺 何磐 罐绊
		{
			Auction.RecvCMD_MERCHANT_ITEM_BUY(cn,*p);
		}break;
	case CMD_MERCHANT_ITEM_BUY_RESULT:
		{
			if(cn == DB_DEMON)
			{
				Auction.RecvCMD_MERCHANT_ITEM_BUY_RESULT(*p);	//叼厚单阁波父 牢沥
			}
			else
			{
			}
		}break;
	case CMD_MERCHANT_ITEM_BUY_COMFORM_RESULT://叼厚单阁捞 IsEnd甫 眉农 窍绊 览翠阑 林绰镑
		{
			if(cn == DB_DEMON)
			{
				Auction.RecvCMD_MERCHANT_ITEM_BUY_COMFORM_RESULT(cn,*p);	//叼厚单阁波父 牢沥
			}
			else
			{
				MyLog(0,"Crack CMD_MERCHANT_ITEM_BUY_COMFORM_RESULT");
			}
			
		}break;
	case CMD_MERCHANT_SELL_ITEM_REGISTER://努扼捞攫飘肺何磐 酒捞袍 殿废 菩哦阑 罐酒忱聪促.
		{
			Auction.RecvCMD_MERCHANT_SELL_ITEM_REGISTER(cn,*p);
		}break;
	case CMD_MERCHANT_SELL_ITEM_REGISTER_RESULT://魄概酒捞袍阑 殿废茄 搬苞甫 叼厚肺 何磐 罐嚼聪促..
		{
			if(cn == DB_DEMON)
			{
				Auction.RecvCMD_MERCHANT_SELL_ITEM_REGISTER_RESULT(*p);	//叼厚单阁波父 牢沥
			}
			else{MyLog(0,"Crack CMD_MERCHANT_ITEM_BUY_COMFORM_RESULT");}
		}break;
	case CMD_MERCHANT_SELL_ITEM_REGISTER_COMFORM_RESULT:
		{
			if(cn == DB_DEMON)
			{
				Auction.RecvCMD_MERCHANT_SELL_ITEM_REGISTER_COMFORM_RESULT(cn,*p);	//叼厚单阁波父 牢沥
			}
			else{MyLog(0,"Crack CMD_MERCHANT_SELL_ITEM_REGISTER_COMFORM_RESULT");}
		}break;
		//昏力 窍扁 
	case CMD_MERCHANT_SELL_ITEM_DELETE://努扼捞攫飘肺 何磐 魄概 秒家甫 罐绰促
		{
			Auction.RecvCMD_MERCHANT_SELL_ITEM_DELETE(cn,*p);
		}break;
	case CMD_MERCHANT_SELL_ITEM_DELETE_RESULT://叼厚肺 何磐 秒家 搬苞甫 罐酒 努扼捞攫飘俊霸 焊辰促 
		{
			Auction.RecvCMD_MERCHANT_SELL_ITEM_DELETE_RESULT(cn,*p);
		}break;
	case CMD_MERCHANT_SELL_ITEM_DELETE_COMFORM_RESULT://叼厚肺 何磐 魄概秒家茄 搬苞甫 罐绰促
		{
			Auction.RecvCMD_MERCHANT_SELL_ITEM_DELETE_COMFORM_RESULT(cn,*p);
		}break;
	//芭贰 搬苞 府胶飘 >
	case CMD_MERCHANT_RESULT_LIST_REQUEST://府胶飘甫 夸没 罐疽嚼聪促.(努扼捞攫飘肺 何磐)
		{
			Auction.RecvCMD_MERCHANT_RESULT_LIST_REQUEST(cn,*p);
		}break;
	case CMD_MERCHANT_RESULT_LIST_REQUEST_RESULT://搬苞甫 罐疽谰聪促(叼厚肺 何磐)
		{
			Auction.RecvCMD_MERCHANT_RESULT_LIST_REQUEST_RESULT(*p);
		}break;
	//芭贰 搬苞 府胶飘 < 

	case CMD_MERCHANT_RESULT_TAKE://啊廉啊摆翠聪促.
		{
			Auction.RecvCMD_MERCHANT_RESULT_TAKE(cn,*p);
		}break;
	case CMD_MERCHANT_RESULT_TAKE_RESULT://搬苞拱阑 啊廉啊绰 搬苞甫 罐嚼聪促.(叼厚肺 何磐
		{
			if(cn == DB_DEMON)
			{
				Auction.RecvCMD_MERCHANT_RESULT_TAKE_RESULT(*p);
			}
			else{MyLog(0,"Crack CMD_MERCHANT_RESULT_TAKE_RESULT");}
		}break;
	case CMD_MERCHANT_RESULT_TAKE_COMFORM_RESULT:
		{
			if(cn == DB_DEMON)
			{
				Auction.RecvCMD_MERCHANT_RESULT_TAKE_COMFORM_RESULT(cn,*p);
			}
			else{MyLog(0,"Crack CMD_MERCHANT_RESULT_TAKE_COMFORM_RESULT");}				
		}break;
//<! BBD 040303	 赣玫飘

⌨️ 快捷键说明

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