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

📄 callfromac.c

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 C
📖 第 1 页 / 共 4 页
字号:
}/* --------------------------------------------- * 犯□正矛□旦熬仃午曰质    市它件玄   * --------------------------------------------*/void saacproto_DBGetEntryByCount_recv( int fd,char* result,char* list,										char* table,int count_start,int msgid,int msgid2 ){	if( strcmp( result, NET_STRING_FAILED) == 0 ) {		print( "failed: DBGetEntryByCount\n");		return;	}	/* duelpoint database 及质   */	if( strcmp( table, DB_DUELPOINT) == 0 ) {		NPC_Duelranking_PrintRanking( list, count_start, msgid, msgid2);	}}#ifdef _ALLDOMAN // (不可开) Syu ADD 排行榜NPCvoid saacproto_UpdataStele_recv( int fd , char *token){	NPC_AlldomanWriteStele( token ); }void saacproto_S_UpdataStele_recv( int i , char *ocdkey , char *oname , char *ncdkey , 			  char *nname , char *title	, int level , int trns , int floor ) {	print("\nSyu log 收到Single=> %s , %s , %s , %s ",ocdkey , oname , ncdkey , nname);	NPC_Alldoman_S_WriteStele( ocdkey , oname , ncdkey , nname , title	, level , trns , floor ) ;}#endif/* --------------------------------------------- * 皮夫□玉平乓旦玄丢永本□斥熬仃午曰 * --------------------------------------------*/void saacproto_Broadcast_recv( int fd,char* id,char* charname,char *message ){#ifndef _DEATH_CONTEND	if( strstr( message, "online") == 0 ||		strstr( message, "offline") == 0 || 		strstr( message, "param") == 0  ||		strstr( message, "chardelete") == 0 ){		char buff[512];		char escapebuf[1024];		snprintf( buff, sizeof( buff),"%s_%s", id, charname );		makeEscapeString( buff, escapebuf, sizeof(escapebuf));		saacproto_DBGetEntryString_send( acfd, DB_ADDRESSBOOK, escapebuf, 0,0);	}#endif}void saacproto_Message_recv( int fd,char* id_from,char* charname_from,							char* id_to,char* charname_to,							char* message,int option,int mesgid ){	BOOL	ret;	ret = ADDRESSBOOK_sendMessage_FromOther( id_from, charname_from, 										id_to, charname_to,										message, option										);	if( ret == TRUE) {		saacproto_MessageAck_send( acfd, id_to, charname_to, 							  		"successful",mesgid);	}}/* --------------------------------------------- *	CoolFish: Family 2001/5/9 * --------------------------------------------*/void saacproto_ACAddFM_recv(int fd, char *result, int fmindex, int charfdid,	int index){	int ret;	int clifd = getfdFromFdid(charfdid);//	print("ACAddFM_0\n");	if (CONNECT_checkfd(clifd) == FALSE)	return;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;//	print("ACAddFM_1 clifd:%d ret:%d fmindex:%d index:%d\n",//		clifd, ret, fmindex, index);	ACAddFM(clifd, ret, fmindex, index);}void saacproto_ACJoinFM_recv(int fd, char *result, int recv, int charfdid){	int ret;	int clifd = getfdFromFdid(charfdid);	if (CONNECT_checkfd(clifd) == FALSE)	return;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;	ACJoinFM(clifd, ret, recv);}void saacproto_ACLeaveFM_recv(int fd, char *result, int resultflag, int charfdid){	int ret;	int clifd = getfdFromFdid(charfdid);	if (CONNECT_checkfd(clifd) == FALSE)	return;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;	ACLeaveFM(clifd, ret, resultflag);		print(" ACLeaveFM_%d ", ret );}void saacproto_ACChangeFM_recv(int fd, char *result, int charfdid){}void saacproto_ACDelFM_recv(int fd, char *result, int charfdid){	int ret;	int clifd = getfdFromFdid(charfdid);	if (CONNECT_checkfd(clifd) == FALSE)	return;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;		ACDelFM(clifd, ret);		print(" ACDelFM_%d ", ret);}void saacproto_ACShowFMList_recv(int fd, char *result, int fmnum, char *data){	int ret;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;	ACShowFMList(ret, fmnum, data);}#ifdef _DEATH_FAMILY_GM_COMMAND	// WON ADD 家族战GM指令void saacproto_ACRELOADFMOK_recv( int fd, int charindex ){	CHAR_talkToCli( charindex, -1, "重读家族资料OK!",  CHAR_COLORYELLOW);}void saacproto_ACSHOWMEMBERLIST2_recv( int fd, int charaindex, int fm1, char *fm1_name, int fm2, char *fm2_name, int time, int id ){	int i, hour = 0, min = 0;	int fmpks_pos = id * 24;	char f1[20] = {0}, f2[20] = {0};	hour = time / 100;	min = time % 100;	if( fm1_name == NULL || fm2_name == NULL ) return;		sprintf( f1, "%s", fm1_name );	sprintf( f2, "%s", fm2_name );	for( i=0; i<MAX_SCHEDULE; i++){				if( fmpks[fmpks_pos+i].dueltime == hour*100 ){			char msg[256] = {0};								fmpks[fmpks_pos+i].host_index = fm1;			fmpks[fmpks_pos+i].guest_index = fm2;							strcpy( fmpks[fmpks_pos+i].host_name, f1 );			strcpy( fmpks[fmpks_pos+i].guest_name, f2 );						fmpks[fmpks_pos+i].prepare_time = min;			fmpks[fmpks_pos+i].max_player = 50;			// 乱斗生存战			fmpks[fmpks_pos+i].win = 0;						fmpks[fmpks_pos+i].flag = FMPKS_FLAG_SCHEDULED;			fmpks[fmpks_pos+i].setting_timeout = 60 * 2;  // 二小时			sprintf( msg, "%s 对 %s 家族挑战设定完成", f1, f2 );			CHAR_talkToCli( charaindex, -1, msg, CHAR_COLORYELLOW );#define SCHEDULEFILEDIR		"./Schedule/"			// save file			{				  char filename[256],tmp[4096],n1[256],n2[256];				  FILE *f;				  int j;				  int floor = 141, x=0, y=0;				  switch( id ){				  case 10:	x = 46;							y = 17;							break;				  case 11:	x = 46;							y = 34;							break;				  case 12:	x = 29;							y = 46;							break;				  case 13:	x = 3;							y = 31;							break;				  case 14:	x = 3;							y = 15;							break;				  }				  snprintf(filename,sizeof(filename), "%s%d_%d_%d", SCHEDULEFILEDIR, floor, x, y );				  if( (f=fopen(filename, "w") ) ){					  for( j = 0; j < MAX_SCHEDULE; j++ ){						makeEscapeString(fmpks[fmpks_pos+j].host_name,n1,sizeof(n1));						makeEscapeString(fmpks[fmpks_pos+j].guest_name,n2,sizeof(n2));						sprintf(tmp, "%d|%d|%s|%d|%s|%d|%d|%d|%d\n",    						fmpks[fmpks_pos+j].dueltime,    						fmpks[fmpks_pos+j].host_index,    						n1,    						fmpks[fmpks_pos+j].guest_index,    						n2,    						fmpks[fmpks_pos+j].prepare_time,    						fmpks[fmpks_pos+j].max_player,    						fmpks[fmpks_pos+j].flag,    						fmpks[fmpks_pos+j].win);  						fwrite(tmp, strlen(tmp), 1, f);					  }					  fclose(f);								  }else{					  print("\n open %s Err", filename );				  }			}			return;		}	}}#endif#ifdef _DEATH_FAMILY_STRUCT		// WON ADD 家族战存放胜负资料void saacproto_ACSendFmPkStruct_recv( int fd, char *data ){	int i;	char all_data[fm_pk_max][128] = {0};	FILE *f;	for( i=0; i<fm_pk_max; i++ ){		char buf1[128] = {0};		if( getStringFromIndexWithDelim( data, "|", i, buf1, sizeof( buf1)) )			sprintf( all_data[i], "%s", buf1 );	}	if( (f=fopen( "d_fm_pk_log.txt", "w+") ) ){		for( i=0; i<fm_pk_max; i++ ){			if( all_data[i][0] != 0 )				fprintf( f, "%s\n", all_data[i] );		}		fclose( f );	}else{		print("\n open d_fm_pk_log.txt Err !!");	}}#endif#ifdef _DEATH_FAMILY_LOGIN_CHECK   // WON ADD 家族战登入检查void saacproto_ACSendMember_recv(int fd, char *result, char *data, int charindex ){		char token[128] = {0};	int fmarray = -1;	if( strcmp( result, "failed" ) == 0 ){		CHAR_warpToSpecificPoint( charindex, 887, 57, 14 );		CHAR_talkToCli( charindex, -1, "您未报名跨星系家族战", CHAR_COLORYELLOW);		return;	}	SetFMPetVarInit(charindex); // 清除守护兽 Flag	if(getStringFromIndexWithDelim(data,"|",1,token,sizeof(token))){		fmarray = atoi(token);		if( fmarray < 0 ){			CHAR_warpToSpecificPoint( charindex, 887, 57, 14 );			CHAR_talkToCli( charindex, -1, "您未报名跨星系家族战", CHAR_COLORYELLOW);			return;		}		CHAR_setInt( charindex, CHAR_FMINDEX, fmarray + 1 );		CHAR_setWorkInt( charindex, CHAR_WORKFMINDEXI, fmarray );		JoinMemberIndex( charindex, fmarray );	}	if(getStringFromIndexWithDelim(data,"|",2,token,sizeof(token))){		CHAR_setInt( charindex, CHAR_FMSPRITE, atoi(token)  );	}	if(getStringFromIndexWithDelim(data,"|",3,token,sizeof(token))){		CHAR_setInt( charindex, CHAR_FMLEADERFLAG, atoi(token) );	}	if(getStringFromIndexWithDelim(data,"|",4,token,sizeof(token))){		CHAR_setWorkInt( charindex, CHAR_WORKFMSETUPFLAG, atoi(token) );	}	if(getStringFromIndexWithDelim(data,"|",5,token,sizeof(token))){		CHAR_setChar( charindex, CHAR_FMNAME, token );	}   	CHAR_setWorkInt(charindex, CHAR_WORKFMCHARINDEX, charindex );	CHAR_sendStatusString(charindex, "f");	CHAR_complianceParameter( charindex );	CHAR_sendCToArroundCharacter( CHAR_getWorkInt( charindex , CHAR_WORKOBJINDEX ));}#endif void saacproto_ACShowMemberList_recv(int fd, char *result, int index, int fmmemnum,	int fmacceptflag, int fmjoinnum, char *data){	int ret;	// fmmemnum -1:无此索引值, -2:无更新 else:表示此家族人数	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;	ACShowMemberList(ret, index, fmmemnum, fmacceptflag, fmjoinnum, data);}void saacproto_ACFMDetail_recv(int fd, char *result, char *data, int charfdid){	int ret;	int clifd = getfdFromFdid(charfdid);	if (CONNECT_checkfd(clifd) == FALSE)	return;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;	ACFMDetail(ret, data, clifd );}void saacproto_ACMemberJoinFM_recv(int fd, char *result, char *data, int charfdid){}void saacproto_ACMemberLeaveFM_recv(int fd, char *result, char *data, int charfdid){}#ifdef _PERSONAL_FAME   // Arminius: 家族个人声望void saacproto_ACFMCharLogin_recv(int fd, char *result, int index, int floor,	int fmdp, int joinflag, int fmsetupflag, int flag, int charindex,	int charfame, int charfdid#ifdef _NEW_MANOR_LAW	,int momentum#endif	)#elsevoid saacproto_ACFMCharLogin_recv(int fd, char *result, int index, int floor,	int fmdp, int joinflag, int fmsetupflag, int flag, int charindex,	int charfdid)#endif{	int ret;	int clifd = getfdFromFdid(charfdid);	if (CONNECT_checkfd(clifd) == FALSE)	return;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;//	print("Login fd:%d result:%s index:%d floor:%d fmdp:%d joinflag:%d setup:%d charfdid:%d\n",//		fd, result, index, floor, fmdp, joinflag, fmsetupflag, charfdid);#ifdef _PERSONAL_FAME   // Arminius: 家族个人声望//        print("Login charfame:%d\n", charfame);	ACFMCharLogin(clifd, ret, index, floor, fmdp, joinflag, fmsetupflag,		flag, charindex, charfame	#ifdef _NEW_MANOR_LAW		,momentum	#endif		);#else	ACFMCharLogin(clifd, ret, index, floor, fmdp, joinflag, fmsetupflag,		flag, charindex);#endif}void saacproto_ACFMCharLogout_recv(int fd, char *result, int charfdid){}void saacproto_ACFMReadMemo_recv(int fd, char *result, int index, int num,        int dataindex, char *data){	int ret;	// index(家族 WORK 的索引),num(资料笔数,最大35笔)	// dataindex(最新的资料数),data(资料)。	// 注:num -1:无此索引值, -2:无更新 else:表示此家族人数	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;	ACShowFMMemo(ret, index, num, dataindex, data);}void saacproto_ACFMWriteMemo_recv(int fd, char *result, int index){}void saacproto_ACFMPointList_recv(int fd, char *result, char *data){	int ret;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;	ACShowPointList(ret, data);}void saacproto_ACSetFMPoint_recv(int fd, char *result, int r, int charfdid){	int ret;	int clifd = getfdFromFdid(charfdid);	if( CONNECT_checkfd(clifd) == FALSE )return;	if (strcmp(result, SUCCESSFUL) == 0){		ret = 1;	}else{		ret = 0;	}	ACSetFMPoint(ret, r, clifd);}void saacproto_ACFixFMPoint_recv(int fd, char *result, int r){}void saacproto_ACFMAnnounce_recv(int fd, char *result, char *fmname,	int fmindex, int index, int kindflag, char *data, int color){	int ret;	if (strcmp(result, SUCCESSFUL) == 0){		ret = 1;	}else{		ret = 0;	}	ACFMAnnounce(ret, fmname, fmindex, index, kindflag, data, color);	}	#ifdef _NEW_MANOR_LAWextern void SortManorSchedule();#endifvoid saacproto_ACShowTopFMList_recv(int fd, char *result, int kindflag, int num, char *data){	int ret;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;	ACShowDpTop(ret, num, data, kindflag);#ifdef _NEW_MANOR_LAW	SortManorSchedule();#endif}#ifdef _FAMILYBANKSTONELOGvoid saacproto_ACgetFMBankgold_recv(int fd, int charfdid,int r){	int clifd=getfdFromFdid(charfdid);	int charaindex = CONNECT_getCharaindex( clifd);	if( CONNECT_checkfd(clifd) == FALSE) return;	CHAR_setInt(charaindex,CHAR_FMBANKGOLD,r);}#endif#ifdef _NEW_MANOR_LAWextern struct  FMS_DPTOP fmdptop;#endifvoid saacproto_ACFixFMData_recv(int fd, char *result, int kindflag, char *data1,	char *data2, int charfdid){	int ret;	int intdata;	int clifd = getfdFromFdid(charfdid);	int charaindex = CONNECT_getCharaindex( clifd );	if( CONNECT_checkfd(clifd) == FALSE )return;		if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else    ret = 0;		if( !CHAR_CHECKINDEX(charaindex) )	return;	if( kindflag == FM_FIX_FMRULE ){		CHAR_talkToCli( charaindex , -1, "家族主旨修改OK!", CHAR_COLORWHITE);	}else if( kindflag == FM_FIX_FMGOLD ) {		intdata = atoi( data1 );		if( ret == 0 ) {			if( atoi(data1) > 0 )	{				CHAR_setInt( charaindex, CHAR_GOLD, CHAR_getInt( charaindex, CHAR_GOLD ) +atoi(data1) );			}			CHAR_send_P_StatusString( charaindex , CHAR_P_STRING_GOLD);

⌨️ 快捷键说明

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