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

📄 callfromac.c

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 C
📖 第 1 页 / 共 4 页
字号:
	if( (ch = CHAR_getCharPointer( charaindex)) == NULL ) return;	ch->indexOfExistDepotItems = allocateMemory( sizeof( int ) * CHAR_MAXDEPOTITEMHAVE );	if( ch->indexOfExistDepotItems == NULL ) return;	for( i=0; i<CHAR_MAXDEPOTITEMHAVE; i++)		ch->indexOfExistDepotItems[i] = -1;	if( CHAR_makeDepotItemStringToChar( charaindex, data) == FALSE ){		CHAR_talkToCli( charaindex, -1, "道具仓库资料读取失败!", CHAR_COLORYELLOW);		CHAR_removeDepotItem( charaindex);		return;	}	if( !CHAR_CHECKINDEX( meindex) ) return;	if( clifd != -1 ) {		char	message[1024];		char	buf[1024];		strcpy( message, 			"3\n\n"			"          使用道具仓库\n\n"			"          <存放道具>\n"			"          <取回道具>\n"		);		lssproto_WN_send( clifd, WINDOW_MESSAGETYPE_SELECT, 						WINDOW_BUTTONTYPE_CANCEL,						311, //CHAR_WINDOWTYPE_DEPOTITEMSHOP_HANDLE,						CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),						makeEscapeString( message, buf, sizeof(buf)) );	}}#endif//,。!#ifdef _CHAR_POOLPETvoid saacproto_ACCharSavePoolPet_recv(int fd ,char* result, char* data,int retfd){	int charaindex = getCharindexFromFdid( retfd);	if( !CHAR_CHECKINDEX(charaindex) ) return;	if( strstr( result, FAILED ) != NULL ){		CHAR_talkToCli( charaindex, -1, "宠物仓库资料存档失败!", CHAR_COLORYELLOW);		return;	}}void saacproto_ACCharGetPoolPet_recv(int fd ,char* result, char* data,int retfd, int meindex) {	Char*   ch = NULL;	int i, clifd, charaindex;	if( strcmp( result , SUCCESSFUL ) != 0 ) return;	charaindex = getCharindexFromFdid(retfd);	if( !CHAR_CHECKINDEX( charaindex) ) return;	clifd = getfdFromCharaIndex( charaindex);	if( CHAR_CheckDepotPet( charaindex) ) return;//仓库已存在	if( (ch = CHAR_getCharPointer( charaindex)) == NULL ) return;	ch->indexOfExistDepotPets = allocateMemory( sizeof( int ) * CHAR_MAXDEPOTPETHAVE );	if( ch->indexOfExistDepotPets == NULL ) return;	for( i=0; i<CHAR_MAXDEPOTPETHAVE; i++)		ch->indexOfExistDepotPets[i] = -1;	if( CHAR_makeDepotPetStringToChar( charaindex, data) == FALSE ){		CHAR_talkToCli( charaindex, -1, "宠物仓库资料读取失败!", CHAR_COLORYELLOW);		CHAR_removeDepotPet( charaindex);		return;	}	if( !CHAR_CHECKINDEX( meindex) ) return;	if( clifd != -1 ) {		char	message[1024];		char	buf[1024];		strcpy( message, 			"3\n\n"			"			使用宠物仓库\n\n"			"			<存放宠物>\n"			"			<取回宠物>\n"		);		lssproto_WN_send( clifd, WINDOW_MESSAGETYPE_SELECT, 						WINDOW_BUTTONTYPE_CANCEL,						CHAR_WINDOWTYPE_DEPOTPETSHOP_HANDLE,						CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),						makeEscapeString( message, buf, sizeof(buf)) );	}}#endif#ifdef _UNIVERSE_CHATROOM//ACUniChatroomvoid saacproto_ACUniChatroom_recv( int acfd, int charaindex, int clifdid, char *result,									   char *CdKey, char *data){	saac_ChatRoom_recvall ( acfd, result, data, charaindex, clifdid );}#endif#ifdef _ANGEL_SUMMON//void saacproto_ACMissionTable_recv( int fd, int num, int type, char *data, int charaindex)void saacproto_ACMissionTable_recv( int fd, int num, int type, char *data, char* angelinfo){	char msg[1024];		if( type == 1 ) { // get data list		//if( num == -1) // get all data		{ 			int di, ti;			char onedata[1024], token[1024];			if( num == -1 ) {				print("获得所有任务!!\n");				memset( missiontable, 0, sizeof(missiontable));			}			else				print("获得一个任务!!:%s\n", data);			for( di =1; di <MAXMISSIONTABLE; di++) {				if( !getStringFromIndexWithDelim( data, " ", di, onedata, sizeof(onedata)))					break;				if( onedata[0] == NULL || onedata[0] == ' ') break;				print(" data%d:%s ", di, onedata);				getStringFromIndexWithDelim( onedata, "|", 1, token, sizeof(token));				ti = atoi( token);				if( ti <0 || ti >= MAXMISSIONTABLE)	continue;				getStringFromIndexWithDelim( onedata, "|", 2, token, sizeof(token));				strcpy( missiontable[ti].angelinfo, token);				getStringFromIndexWithDelim( onedata, "|", 3, token, sizeof(token));				strcpy( missiontable[ti].heroinfo, token);				getStringFromIndexWithDelim( onedata, "|", 4, token, sizeof(token));				missiontable[ti].mission = atoi( token);				getStringFromIndexWithDelim( onedata, "|", 5, token, sizeof(token));				missiontable[ti].flag = atoi( token);				getStringFromIndexWithDelim( onedata, "|", 6, token, sizeof(token));				missiontable[ti].time = atoi( token);				getStringFromIndexWithDelim( onedata, "|", 7, token, sizeof(token));				missiontable[ti].limittime = atoi( token);			}		}	}	else if( type == 2 ) { // add data return		int angelindex =-1, i, maxChar;		char nameinfo[128], msgbuf[1024];		if( num == -1) {			sprintf( msg, "任务已满\n");			print( msg);			LogAngel( msg);			return;		}		sprintf( msgbuf, "收到AC回应(add data) num=%d nameinfo=%s ", num, angelinfo);		print( msgbuf);		LogAngel( msgbuf);		maxChar = CHAR_getPlayerMaxNum();		for( i =0; i <maxChar; i++) {			if( !CHAR_CHECKINDEX( i) )	continue;			getMissionNameInfo( i, nameinfo);			if( strcmp( nameinfo, angelinfo) )	continue;						angelindex = i;			break;		}		if( angelindex == -1 ) {			print("使者已下线\n");			return;		}					lssproto_WN_send( getfdFromCharaIndex(angelindex), WINDOW_MESSAGETYPE_ANGELMESSAGE, 			WINDOW_BUTTONTYPE_YESNO, 			CHAR_WINDOWTYPE_ANGEL_ASK,			-1,			"目前魔族肆虐,精灵们需要你的帮忙,前往寻找勇者来消灭这些魔族,你是否愿意帮忙?");				CHAR_talkToCli( angelindex, -1, "精灵正在召唤你。", CHAR_COLORYELLOW);	}	else if( type == 3) {		if( num <0 || num >= MAXMISSIONTABLE)	return;		sprintf( msg, " AC清除 任务:%d %s %s ", num, missiontable[num].angelinfo, missiontable[num].heroinfo);		print( msg);		LogAngel( msg);		strcpy( missiontable[num].angelinfo, "");		strcpy( missiontable[num].heroinfo, "");		missiontable[num].mission = 0;		missiontable[num].flag = 0;		missiontable[num].time = 0;		missiontable[num].limittime = 0;	}}#endif#ifdef _TEACHER_SYSTEMvoid saacproto_ACCheckCharacterOnLine_recv( int acfd, int charaindex, int iOnline,char *data,int flag){	switch(flag){		case R_F_TEACHER_SYSTEM:			CHAR_Teacher_system_View(charaindex,iOnline,data);			break;		default:printf("saacproto_ACCheckCharacterOnLine_recv(): error flag type!!(%d)\n",flag);	}}#endif#ifdef _RACEMANvoid saacproto_ACRaceRecordandSort_recv(int fd,int charaindex,int racetype,char *data)  {		int  i,j=0;	char perdata[128];		char buuf[16384];	//sprintf(buuf,"recv_type:%d  data:%s",racetype,data);	//CHAR_talkToCli( charaindex , -1, buuf , CHAR_COLORYELLOW);	//print("race_recv:%s",data);	if(racetype == 0 || racetype == 9 ) return;  //因为登记动作而接收到ac的回传,所以不用处理	//或许可以原封不动传给CLIENT		if(racetype == 1){	//gamemode 1 		memset(ranktable1,0,sizeof(ranktable1));		for(i=0;i<DEFMAXRANK*3;i++)  //原则上不会跑完		{			if( i % 3 == 0){     				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(ranktable1[j].id,perdata);			}else if( i % 3 == 1){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(ranktable1[j].name,perdata);			}else if( i % 3 == 2){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;				ranktable1[j].catchcnt = atoi(perdata);				ranktable1[j].rank = j+1;				j++;			}				}	}else if(racetype == 2){ //gamemode 2 		memset(ranktable2,0,sizeof(ranktable2));		for(i=0;i<DEFMAXRANK*3;i++)  		{			if( i % 3 == 0){     				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(ranktable2[j].id,perdata);			}else if( i % 3 == 1){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(ranktable2[j].name,perdata);			}else if( i % 3 == 2){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;				ranktable2[j].catchcnt = atoi(perdata);				ranktable2[j].rank = j+1;				j++;			}				}	}else if(racetype == 3){ //gamemode 3 			memset(ranktable3,0,sizeof(ranktable3));		for(i=0;i<DEFMAXRANK*3;i++)  		{			if( i % 3 == 0){     				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(ranktable3[j].id,perdata);			}else if( i % 3 == 1){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(ranktable3[j].name,perdata);			}else if( i % 3 == 2){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;				ranktable3[j].catchcnt = atoi(perdata);				ranktable3[j].rank = j+1;				j++;			}				}	}else if(racetype == 4){ //gamemode 4 				memset(ranktable4,0,sizeof(ranktable4));		for(i=0;i<DEFMAXRANK*3;i++)  //原则上不会跑完		{			if( i % 3 == 0){     				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(ranktable4[j].id,perdata);			}else if( i % 3 == 1){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(ranktable4[j].name,perdata);			}else if( i % 3 == 2){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;				ranktable4[j].catchcnt = atoi(perdata);				ranktable4[j].rank = j+1;				j++;			}				}	}else if(racetype == 5){	//gamemode 5 				memset(ranktable5,0,sizeof(ranktable5));		for(i=0;i<DEFMAXRANK*3;i++) 		{			if( i % 3 == 0){     				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(ranktable5[j].id,perdata);			}else if( i % 3 == 1){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(ranktable5[j].name,perdata);			}else if( i % 3 == 2){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;				ranktable5[j].catchcnt = atoi(perdata);				ranktable5[j].rank = j+1;				j++;			}				}	}else if(racetype == 11){		memset(history1,0,sizeof(history1));		for(i=0;i<DEFMAXRANK*3;i++) 		{			if( i % 3 == 0){     				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(history1[j].id,perdata);			}else if( i % 3 == 1){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(history1[j].name,perdata);			}else if( i % 3 == 2){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;				history1[j].catchcnt = atoi(perdata);				history1[j].rank = j+1;				j++;			}				}	}else if(racetype == 12){		memset(history2,0,sizeof(history2));		for(i=0;i<DEFMAXRANK*3;i++) 		{			if( i % 3 == 0){     				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(history2[j].id,perdata);			}else if( i % 3 == 1){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(history2[j].name,perdata);			}else if( i % 3 == 2){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;				history2[j].catchcnt = atoi(perdata);				history2[j].rank = j+1;				j++;			}				}	}else if(racetype == 13){		memset(history3,0,sizeof(history3));		for(i=0;i<DEFMAXRANK*3;i++) 		{			if( i % 3 == 0){     				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(history3[j].id,perdata);			}else if( i % 3 == 1){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(history3[j].name,perdata);			}else if( i % 3 == 2){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;				history3[j].catchcnt = atoi(perdata);				history3[j].rank = j+1;				j++;			}				}	}else if(racetype == 14){		memset(history4,0,sizeof(history4));		for(i=0;i<DEFMAXRANK*3;i++) 		{			if( i % 3 == 0){     				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(history4[j].id,perdata);			}else if( i % 3 == 1){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(history4[j].name,perdata);			}else if( i % 3 == 2){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;				history4[j].catchcnt = atoi(perdata);				history4[j].rank = j+1;				j++;			}				}	}else if(racetype == 15){		memset(history5,0,sizeof(history5));		for(i=0;i<DEFMAXRANK*3;i++) 		{			if( i % 3 == 0){     				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(history5[j].id,perdata);			}else if( i % 3 == 1){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;						strcpy(history5[j].name,perdata);			}else if( i % 3 == 2){				if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata)))					break;				if( strlen(perdata) == 0 ) break;				history5[j].catchcnt = atoi(perdata);				history5[j].rank = j+1;				j++;			}				}	}}#endif

⌨️ 快捷键说明

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