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

📄 saacproto_serv.c

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 C
📖 第 1 页 / 共 5 页
字号:
/* output by ../../bin/lsgen.perl 0.41 ( 1998 May) * made Thu Feb 17 17:30:27 2000 * user ringo * host indy * file /opt/ringo/chsa/src/saac/./saacproto_serv.c * util ./saacproto_util.c , ./saacproto_util.h * src  /opt/ringo/chsa/src/saac/../../doc/saacproto.html */#define _SAACPROTOSERV_C_#include "version.h"#include "saacproto_serv.h"#include "main.h"#ifdef _RECAL_BACKUP_PLAYER			// WON 回溯功能#include "recv.h"#endif#ifdef _DEATH_FAMILY_GM_COMMAND	// WON ADD 家族战GM指令#include "acfamily.h"#endif// Nuke : This 'fd' is not a socket, it's the index of structure connectint saacproto_ServerDispatchMessage( int fd , char *encoded, char *debugfun){	unsigned int msgid;	char funcname[1024];	saacproto_splitString( encoded );	saacproto_GetMessageInfo(&msgid , funcname ,sizeof(funcname), saacproto.token_list );	if( strcmp( funcname , "ACServerLogin" ) == 0 ){		char* servername;		char* serverpas;		servername = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		serverpas = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		saacproto_ACServerLogin_recv( fd,servername,serverpas);		return 0;	}	if( strcmp( funcname , "ACServerLogout" ) == 0 ){		saacproto_ACServerLogout_recv( fd);		return 0;	}	if( strcmp( funcname , "ACCharList" ) == 0 ){		char* id;		char* pas;		int mesgid;		id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		pas = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		mesgid = saacproto_demkstr_int( saacproto.token_list[4] );		saacproto_ACCharList_recv( fd,id,pas,mesgid);		return 0;	}	if( strcmp( funcname , "ACCharLoad" ) == 0 ){		char* id;		char* pas;		char* charname;		int lock;		char* opt;		int mesgid;		id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		pas = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		charname = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));		lock = saacproto_demkstr_int( saacproto.token_list[5] );		opt = saacproto_wrapStringAddr( saacproto_stringwrapper[5] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[6] ));		mesgid = saacproto_demkstr_int( saacproto.token_list[7] );		saacproto_ACCharLoad_recv( fd,id,pas,charname,lock,opt,mesgid);		return 0;	}#ifdef _RELOGIN	if( strcmp( funcname , "ACCharLoadII" ) == 0 ){		char* id;		char* pas;		char* charname;		int lock;		char* opt;		int mesgid;		int gs1;		int gs2;		id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		pas = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		charname = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));		lock = saacproto_demkstr_int( saacproto.token_list[5] );		opt = saacproto_wrapStringAddr( saacproto_stringwrapper[5] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[6] ));		mesgid = saacproto_demkstr_int( saacproto.token_list[7] );		gs1 = saacproto_demkstr_int( saacproto.token_list[8] );		gs2 = saacproto_demkstr_int( saacproto.token_list[9] );		saacproto_ACCharLoadII_recv( fd,id,pas,charname,lock,opt,mesgid,gs1,gs2);		return 0;	}#endif	if( strcmp( funcname , "ACCharSave" ) == 0 ){		char* id;		char* charname;		char* opt;		char* charinfo;		int unlock;		int mesgid;#ifdef _NewSave		int charindex;#endif				id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		charname = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		opt = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));		charinfo = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));		unlock = saacproto_demkstr_int( saacproto.token_list[6] );		mesgid = saacproto_demkstr_int( saacproto.token_list[7] );#ifdef _NewSave		charindex = saacproto_demkstr_int( saacproto.token_list[8] );		saacproto_ACCharSave_recv( fd,id,charname,opt,charinfo,unlock,mesgid,charindex);#else		saacproto_ACCharSave_recv( fd,id,charname,opt,charinfo,unlock,mesgid);#endif		return 0;	}#ifdef _RELOGIN	if( strcmp( funcname , "ACCharSaveII" ) == 0 ){		char* id;		char* charname;		char* opt;		char* charinfo;		int unlock;		int mesgid;		int charindex;		int gs1;		int gs2;		id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		charname = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		opt = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));		charinfo = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));		unlock = saacproto_demkstr_int( saacproto.token_list[6] );		mesgid = saacproto_demkstr_int( saacproto.token_list[7] );		charindex = saacproto_demkstr_int( saacproto.token_list[8] );		charindex = saacproto_demkstr_int( saacproto.token_list[9] );		charindex = saacproto_demkstr_int( saacproto.token_list[10] );//		saacproto_ACCharSaveII_recv( fd,id,charname,opt,charinfo,unlock,mesgid,charindex,gs1,gs2);		saacproto_ACCharSaveII_recv( fd,id,charname,opt,charinfo,unlock,mesgid,charindex);		return 0;	}#endif	if( strcmp( funcname , "ACCharDelete" ) == 0 ){		char* id;		char* passwd;		char* charname;		char* option;		int mesgid;		id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		passwd = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		charname = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));		option = saacproto_wrapStringAddr( saacproto_stringwrapper[4] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[5] ));		mesgid = saacproto_demkstr_int( saacproto.token_list[6] );		saacproto_ACCharDelete_recv( fd,id,passwd,charname,option,mesgid);		return 0;	}	if( strcmp( funcname , "ACLock" ) == 0 ){		char* id;		int lock;		int mesgid;		id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		lock = saacproto_demkstr_int( saacproto.token_list[3] );		mesgid = saacproto_demkstr_int( saacproto.token_list[4] );		saacproto_ACLock_recv( fd,id,lock,mesgid);		return 0;	}#ifdef _WAEI_KICK	if( strcmp( funcname , "ACKick" ) == 0 ){		char* id;	//欲踢的帐号		int flg;	//事件flg		int clifd;	//GM		id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		clifd = saacproto_demkstr_int( saacproto.token_list[3] );		flg = saacproto_demkstr_int( saacproto.token_list[4] );		saacproto_ACKick_recv( fd, id, flg, clifd);		return 0;	}#endif#ifdef _NEW_PLAYERGOLD	if( strcmp( funcname , "LoadNEWPlayer" ) == 0 ){		char* filename;	//欲踢的帐号		int charaindex;		charaindex = saacproto_demkstr_int( saacproto.token_list[2] );		filename = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		saacproto_LoadNEWPlayer_recv( fd, charaindex, filename);		return 0;	}#endif#ifdef _DEATH_CONTEND	if( strcmp( funcname , "PKLISTGETDATA" ) == 0 ){		int start=-1, count;		start = saacproto_demkstr_int( saacproto.token_list[2] );		count = saacproto_demkstr_int( saacproto.token_list[3] );		saacproto_PKLISTGETDATA_recv( fd, start, count);		return 0;	}	if( strcmp( funcname , "PKLISTUPDATE" ) == 0 ){		char *mecdkey, *tocdkey;		int menum, tonum, winer, flg;		mecdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		tocdkey = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		menum = saacproto_demkstr_int( saacproto.token_list[4] );		tonum = saacproto_demkstr_int( saacproto.token_list[5] );		winer = saacproto_demkstr_int( saacproto.token_list[6] );		flg = saacproto_demkstr_int( saacproto.token_list[7] );		saacproto_PKLISTUPDATE_recv( fd, menum, mecdkey, tonum, tocdkey, winer, flg);		return 0;	}	if( strcmp( funcname , "PKLISTCHARTS" ) == 0 ){		int type, flg; //要求资讯		type = saacproto_demkstr_int( saacproto.token_list[2] );		flg = saacproto_demkstr_int( saacproto.token_list[3] );		saacproto_PKLISTCHARTS_recv( fd, type, flg);		return 0;	}#endif#ifdef _PAUCTION_MAN	if( strcmp( funcname , "AUCTIONADDITEM" ) == 0 ){		int ItemId=-1;		char *name;		char *data;		int flg, ret;			name = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		data = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		ItemId = saacproto_demkstr_int( saacproto.token_list[4] );		ret = saacproto_demkstr_int( saacproto.token_list[5] );		flg = saacproto_demkstr_int( saacproto.token_list[6] );		saacproto_ACItemAuction_recv( fd, name, data, ItemId, ret, flg);		return 0;	}#endif	if( strcmp( funcname , "ACUCheck" ) == 0 ){		char* mem_id;		int status;		mem_id = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		status = saacproto_demkstr_int( saacproto.token_list[3] );		saacproto_ACUCheck_recv( fd,mem_id,status);		return 0;	}	if( strcmp( funcname , "DBUpdateEntryString" ) == 0 ){		char* table;		char* key;		char* value;		int msgid;		int msgid2;		table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		key = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		value = saacproto_wrapStringAddr( saacproto_stringwrapper[3] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[4] ));		msgid = saacproto_demkstr_int( saacproto.token_list[5] );		msgid2 = saacproto_demkstr_int( saacproto.token_list[6] );		saacproto_DBUpdateEntryString_recv( fd,table,key,value,msgid,msgid2);		return 0;	}	if( strcmp( funcname , "DBDeleteEntryString" ) == 0 ){		char* table;		char* key;		int msgid;		int msgid2;		table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		key = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		msgid = saacproto_demkstr_int( saacproto.token_list[4] );		msgid2 = saacproto_demkstr_int( saacproto.token_list[5] );		saacproto_DBDeleteEntryString_recv( fd,table,key,msgid,msgid2);		return 0;	}	if( strcmp( funcname , "DBGetEntryString" ) == 0 ){		char* table;		char* key;		int msgid;		int msgid2;		table = saacproto_wrapStringAddr( saacproto_stringwrapper[1] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[2] ));		key = saacproto_wrapStringAddr( saacproto_stringwrapper[2] , saacproto.workbufsize , saacproto_demkstr_string( saacproto.token_list[3] ));		msgid = saacproto_demkstr_int( saacproto.token_list[4] );		msgid2 = saacproto_demkstr_int( saacproto.token_list[5] );		saacproto_DBGetEntryString_recv( fd,table,key,msgid,msgid2);		return 0;

⌨️ 快捷键说明

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