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

📄 callfromac.c

📁 石器时代6.0源代码 2008.08.27最新版 完全可编译开服!
💻 C
📖 第 1 页 / 共 2 页
字号:
{	int ret;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else	ret = 0;	ACShowFMList(ret, fmnum, data);}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	)#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		);#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);	}	void 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);}void 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);			return;		}else {			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);			}			LogStone(				atoi(data2),				CHAR_getChar( charaindex, CHAR_NAME ),				CHAR_getChar( charaindex, CHAR_CDKEY ),				-intdata,				CHAR_getInt( charaindex, CHAR_GOLD ),				"FMBank(家族银行)",				CHAR_getInt( charaindex,CHAR_FLOOR),				CHAR_getInt( charaindex,CHAR_X ),				CHAR_getInt( charaindex,CHAR_Y )				);		}	}else if( kindflag == FM_FIX_FMLEADERCHANGE ){		ACFMJob( clifd, ret, data1, data2 );	}	// CoolFish: 2001/10/03	else if (kindflag == FM_FIX_FMADV || kindflag == FM_FIX_FMFEED		|| kindflag == FM_FIX_FMSYNTHESIZE || kindflag == FM_FIX_FMDEALFOOD)	{		char	tmpbuf[1024], flag[128];		if (kindflag == FM_FIX_FMADV)	strcpy(flag, "ADV");		else if (kindflag == FM_FIX_FMFEED)	strcpy(flag, "FEED");		else if (kindflag == FM_FIX_FMSYNTHESIZE)	strcpy(flag, "SYN");		else if (kindflag == FM_FIX_FMDEALFOOD)	strcpy(flag, "FOOD");		sprintf(tmpbuf, "%s::%d %s %s", flag,			CHAR_getInt(charaindex, CHAR_FMINDEX),			CHAR_getChar(charaindex, CHAR_FMNAME), data1);		// print("ACFixFMData tmpbuf:%s\n", tmpbuf);		LogFMPOP(tmpbuf);	}}void saacproto_ACFixFMPK_recv(int fd, char *result, int data, int winindex,	int loseindex){	int ret;	if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else    ret = 0;         //        print("FixFMPK_recv result:%s data:%d winindex:%d loseindex:%d\n", result, data, winindex, loseindex);        if (ret == 1)        {        	char	tmpbuf[256];        	ACFixFMPK(winindex, loseindex, data);        	sprintf(tmpbuf, "FMPK(家族PK)::win(优胜家族):%d lose(落败家族):%d point:%d", winindex, loseindex, data);		//print("FixFMPK tmpbuf:%s\n", tmpbuf);        	LogFMPOP(tmpbuf);        }}void saacproto_ACGMFixFMData_recv(int fd, char *result, char *fmname, int charfdid){	int ret;	int clifd = getfdFromFdid(charfdid);	char buf[256];	if( CONNECT_checkfd(clifd) == FALSE )return;		if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else    ret = 0;                 print("GMFixFMData_recv result:%s\n", result);                if (ret == 1)        {           sprintf(buf, "修改%s资料OK!", fmname);           CHAR_talkToCli(CONNECT_getCharaindex(clifd) , -1, buf, CHAR_COLORWHITE);        }        else        {           sprintf(buf, "修改%s资料失败!", fmname);           CHAR_talkToCli(CONNECT_getCharaindex(clifd) , -1, buf, CHAR_COLORWHITE);        }}extern int familyTax[];void saacproto_ACGetFMData_recv(int fd, char *result, int kindflag, int data,	int charfdid){	int ret;	char buf[256];	int clifd = getfdFromFdid(charfdid);	if( CONNECT_checkfd(clifd) == FALSE )return;		if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else    ret = 0;		//print(" FMBank2_%d_%d_%d ", ret, kindflag, data );	if( ret == 0 ) return;		if( kindflag == 1 ) {		int fmindex = CHAR_getWorkInt(CONNECT_getCharaindex(clifd), CHAR_WORKFMINDEXI);		if( fmindex < 0 || fmindex >= FAMILY_MAXNUM ){			print(" fmindex:%d if FALSE !!\n", fmindex);			return;		}		familyTax[ fmindex] = data;		sprintf( buf, "B|T|%d", data );		lssproto_FM_send( clifd, buf );	}		}void saacproto_ACFMClearPK_recv(int fd, char *result, char *fmname, int fmindex,        int index){	int ret, i = 0;		if (strcmp(result, SUCCESSFUL) == 0)	ret = 1;	else    ret = 0;	for (i = 0; i < MAX_SCHEDULEMAN * MAX_SCHEDULE; i++)	{	   {	      if (fmpks[i].flag == -1)	continue;	      if (fmpks[i].host_index == index	      	 || fmpks[i].guest_index == index)	      {	         fmpks[i].host_index = -1;	         strcpy(fmpks[i].host_name, "");	         fmpks[i].guest_index = -1;	         strcpy(fmpks[i].guest_name, "");	         fmpks[i].prepare_time = -1;	         fmpks[i].max_player = -1;	         fmpks[i].win = -1;	         fmpks[i].flag = -1;	      }	   }	}}#ifdef _ACFMPK_LISTvoid saacproto_ACSendFmPk_recv( int fd, int toindex, int flg){	char buf[256];	if( flg == 0){		sprintf( buf, "庄园挑战登录失败!!");		CHAR_talkToCli( toindex, -1, buf, CHAR_COLORRED);	}else{		sprintf( buf, "庄园挑战登录确认OK,请好好准备。");		CHAR_talkToCli( toindex, -1, buf, CHAR_COLORYELLOW);	}}void saacproto_ACLoadFmPk_recv(int fd, char *data){	char buf[10], fm_pk_data[128];	char token[256], skip[256];	int fm_pk_num , fmpks_pos=-1;	easyGetTokenFromString( data , 1 , buf , sizeof(buf));	fm_pk_num = atoi(buf);	sprintf(fm_pk_data , "%s", data+2 );	if( ((fmpks_pos=fm_pk_num*MAX_SCHEDULE)== -1) || (fm_pk_num > FMPOINTNUM) ){		print("\n err fm_pk_num(%d)", fm_pk_num );		return;	}	if (getStringFromIndexWithDelim(data,"|",2,token,sizeof(token))) {		fmpks[fmpks_pos+1].dueltime=atoi(token);	 }	 if (getStringFromIndexWithDelim(data,"|",3,token,sizeof(token))) {		 fmpks[fmpks_pos+1].host_index=atoi(token);	 }	 if (getStringFromIndexWithDelim(data,"|",4,token,sizeof(token))) {		 strcpy(fmpks[fmpks_pos+1].host_name,makeStringFromEscaped(token));	 }	 if (getStringFromIndexWithDelim(data,"|",5,token,sizeof(token))) {		 fmpks[fmpks_pos+1].guest_index=atoi(token);	 }	 if (getStringFromIndexWithDelim(data,"|",6,token,sizeof(token))) {		 strcpy(fmpks[fmpks_pos+1].guest_name,makeStringFromEscaped(token));	 }	 if (getStringFromIndexWithDelim(data,"|",7,token,sizeof(token))) {		 fmpks[fmpks_pos+1].prepare_time=atoi(token);	 }	 if (getStringFromIndexWithDelim(data,"|",8,token,sizeof(token))) {		 int maxnum = atoi( token);		 if( maxnum < 50 ) maxnum = 50;		 fmpks[fmpks_pos+1].max_player = maxnum;	 }	 if (getStringFromIndexWithDelim(data,"|",9,token,sizeof(token))) {		 fmpks[fmpks_pos+1].flag=atoi(token);	 }	 if( fmpks[fmpks_pos+1].flag == FMPKS_FLAG_MANOR_OTHERPLANET ){		 if (getStringFromIndexWithDelim(data,"|",10,token,sizeof(token))) {			 strcpy(fmpks[fmpks_pos+2].host_name,makeStringFromEscaped(token));			 strcpy(skip, makeStringFromEscaped(token));			 if (strcmp(getGameserverID(), skip)==0) {				 fmpks[fmpks_pos+1].flag=8;			 }else if( fmpks[fmpks_pos+1].flag == 8) {				 fmpks[fmpks_pos+1].flag=10;			 }		 }	 }else{		 strcpy( fmpks[fmpks_pos+2].host_name, "");	 }}#endifvoid saacproto_ACManorPKAck_recv(int fd, char *data){  // 更新这个 server 的 庄园 pk scheduleman  int i;  char token[256], skip[256];  int char_max=CHAR_getCharNum();  print("ACManorPKAck_recv: %s\n",data);  for (i=0; i<char_max; i++) {    if (CHAR_getCharUse(i)) {      if (CHAR_getInt( i, CHAR_WHICHTYPE )==CHAR_TYPEMANORSCHEDULEMAN) {        if (getStringFromIndexWithDelim(data,"|",1,token,sizeof(token))) {          if (CHAR_getWorkInt(i, CHAR_NPCWORKINT2)==atoi(token)) {	// manor id            int fmpks_pos = CHAR_getWorkInt(i, CHAR_NPCWORKINT1)*MAX_SCHEDULE;            // 对战星球            if (getStringFromIndexWithDelim(data,"|",10,token,sizeof(token))) {              strcpy(skip, makeStringFromEscaped(token));              print("ACManorPKAck: %d %s\n", fmpks_pos, skip);                            if (strcmp(getGameserverID(), skip)!=0) {                strcpy(fmpks[fmpks_pos+2].host_name, skip);                                // 时间                if (getStringFromIndexWithDelim(data,"|",2,token,sizeof(token))) {                  fmpks[fmpks_pos+1].dueltime=atoi(token);                }                // 主队 familyindex                if (getStringFromIndexWithDelim(data,"|",3,token,sizeof(token))) {                  fmpks[fmpks_pos+1].host_index=atoi(token);                }                // 主队 家族名                if (getStringFromIndexWithDelim(data,"|",4,token,sizeof(token))) {                  strcpy(fmpks[fmpks_pos+1].host_name,makeStringFromEscaped(token));                }                // 客队 familyindex                if (getStringFromIndexWithDelim(data,"|",5,token,sizeof(token))) {                  fmpks[fmpks_pos+1].guest_index=atoi(token);                }                // 客队 家族名                if (getStringFromIndexWithDelim(data,"|",6,token,sizeof(token))) {                  strcpy(fmpks[fmpks_pos+1].guest_name,makeStringFromEscaped(token));                }                // 准备时间                if (getStringFromIndexWithDelim(data,"|",7,token,sizeof(token))) {                  fmpks[fmpks_pos+1].prepare_time=atoi(token);                }                // 最大人数                if (getStringFromIndexWithDelim(data,"|",8,token,sizeof(token))) {                  fmpks[fmpks_pos+1].max_player=atoi(token);                }                // 旗标                if (getStringFromIndexWithDelim(data,"|",9,token,sizeof(token))) {                  fmpks[fmpks_pos+1].flag=atoi(token);                }                // 对战星球                if (getStringFromIndexWithDelim(data,"|",10,token,sizeof(token))) {                  strcpy(fmpks[fmpks_pos+2].host_name,makeStringFromEscaped(token));                }              }            }          }        }      }    }  }}#ifdef _WAEI_KICKvoid saacproto_ACKick_recv(int fd , int act, char* data ,int retfd){  int clifd = getfdFromFdid(retfd);    //char cdkey[CDKEYLEN];  int cindex = getCharindexFromFdid(retfd);  	print("状态:%s ", data);		switch( act)	{	case 0:	//FAIL		if( CONNECT_checkfd(clifd) == FALSE) return;		CHAR_talkToCli( cindex, -1, data, CHAR_COLORYELLOW);			break;	case 1:	//跨星球踢人		{			char cdkey[64];			char szName[64];			int i, MAX_USER=0;			BOOL find=FALSE;						print("跨服踢人:%s", data);			MAX_USER=getFdnum();			for(i=0;i<MAX_USER;i++){				int i_use;				if(fd==i)continue;				i_use=CONNECT_getUse(i);				if(i_use){					CONNECT_getCdkey( i, cdkey, sizeof( cdkey ));					if( !strcmp( cdkey, data) ){						int fd_charaindex = CONNECT_getCharaindex( i );						CONNECT_getCharname( i, szName, sizeof( szName ) );						if( retfd == -1 ){							print("因重复登入");							CHAR_talkToCli( fd_charaindex, -1, "因重复帐号登入而断线!",CHAR_COLORYELLOW);						}else{							print("因做坏事 ");							CHAR_talkToCli(fd_charaindex, -1, "因做坏事而断线。",CHAR_COLORYELLOW);						}						CONNECT_setCloseRequest( i , 1 );						find=TRUE;					}				}			}						if( find == TRUE && retfd != -1 && CHAR_CHECKINDEX( cindex) )	{				char buf1[256];//, buf2[256];				sprintf(buf1,"系统将[%s]逐出伺服器。", /*CHAR_getChar( cindex, CHAR_NAME),*/ szName);				for( i=0; i<MAX_USER; i++){					if( CONNECT_getUse(i) )	{						int fd_charaindex = CONNECT_getCharaindex( i);						if( !CHAR_CHECKINDEX( fd_charaindex) ) continue;						CHAR_talkToCli( fd_charaindex, -1, buf1, CHAR_COLORYELLOW);						//						CHAR_talkToCli(fd_charaindex, -1, buf2, CHAR_COLORYELLOW);					}				}			} 		}		break;	case 2:		print("\n CASE 2");		break;	}}#endifvoid saacproto_ACCharLogin_recv(int fd , int clifd, int flag){	if(flag==1)		lssproto_ClientLogin_send( clifd , "ok" );	else{		lssproto_ClientLogin_send( clifd , "no" );	}}

⌨️ 快捷键说明

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