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

📄 family.c

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 C
📖 第 1 页 / 共 5 页
字号:
/*	LogFamily(		CHAR_getChar( meindex, CHAR_FMNAME),		CHAR_getInt( meindex, CHAR_FMINDEX),		CHAR_getChar( meindex, CHAR_NAME),		CHAR_getChar( meindex, CHAR_CDKEY),		"DELFAMILY(家族解散)",		""	);*/   }   else	 lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,		WINDOW_BUTTONTYPE_OK,		-1, -1,		makeEscapeString( "\n申请解散家族失败!", buf, sizeof(buf)));   CHAR_sendStatusString( meindex, "F");}void ACShowFMList(int result, int fmnum, char *data){   if( result != 1 )   	return;   //print("\ngetFamilyListFromAC:%d", fmnum );   familyNumTotal = fmnum;   strcpy( familyListBuf, data );      //   print( "FamilyData:%s ", familyListBuf );}void ACShowMemberList(int result, int index, int fmnum, int fmacceptflag, int fmjoinnum,char *data){   int  j;   char numberid[3];   char tmpbuf[128];   if(result==0){       return;   }else{       if(fmnum == -1){           print("\n FamilyWorkIndex Error!!");       }       for(j=1;j<=FAMILY_MAXMEMBER;j++){           strcpy(memberlist[index].numberlistarray[j-1],"");       }       for(j=1;j<=fmnum;j++){           if(getStringFromIndexWithDelim(data," ",j,tmpbuf,sizeof(tmpbuf)) == FALSE)                return;           strcpy(memberlist[index].numberlistarray[j-1],tmpbuf);               getStringFromIndexWithDelim(tmpbuf,"|",1,numberid,sizeof(numberid));           memberlist[index].memberindex[j-1] = atoi(numberid);       }       memberlist[index].fmnum  = fmnum;       memberlist[index].fmjoinnum = fmjoinnum;       memberlist[index].accept = fmacceptflag;       return;   }}void ACShowDpTop(int result,int num, char *data, int kindflag){    int i;    char tmpbuf[256],tmpbuf1[64];    if(result==0){        return;    }else{        switch( kindflag )        {            case FM_TOP_INTEGRATE:            {                for(i=0; i<FAMILY_MAXNUM; i++){                    strcpy(fmdptop.topmemo[i], "");                    fmdptop.fmtopid[i] = -1;#ifdef _FMVER21                    fmdptop.fmtopdp[i] = -1;#endif#ifdef _NEW_MANOR_LAW										fmdptop.fmMomentum[i] = -1;										fmdptop.momentum_topid[i] = -1;#endif                }                fmdptop.num = num;                for(i=0; i<fmdptop.num; i++){                   if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE)                       return;                   strcpy(fmdptop.topmemo[i], tmpbuf);                   // family index                   getStringFromIndexWithDelim( tmpbuf, "|", 1, tmpbuf1, sizeof(tmpbuf1));                   fmdptop.fmtopid[i] = atoi(tmpbuf1);#ifdef _FMVER21                   // family popularity                   getStringFromIndexWithDelim( tmpbuf, "|", 6, tmpbuf1, sizeof(tmpbuf1));                   fmdptop.fmtopdp[i] = atoi(tmpbuf1);                   #endif                   #ifdef _NEW_MANOR_LAW									 getStringFromIndexWithDelim( tmpbuf, "|", 7, tmpbuf1, sizeof(tmpbuf1));                   fmdptop.fmMomentum[i] = atoi(tmpbuf1);#endif                }            }            break;            case FM_TOP_ADV:            {                for(i=0; i<30; i++)                    strcpy(fmdptop.adv_topmemo[i], "");                fmdptop.adv_num = num;                for(i=0; i<fmdptop.adv_num; i++){                    if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE)                        return;                    strcpy(fmdptop.adv_topmemo[i], tmpbuf);                }                            }            break;            case FM_TOP_FEED:            {                for(i=0; i<30; i++)                    strcpy(fmdptop.feed_topmemo[i], "");                fmdptop.feed_num = num;                for(i=0; i<fmdptop.feed_num; i++){                    if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE)                        return;                    strcpy(fmdptop.feed_topmemo[i], tmpbuf);                }                            }            break;            case FM_TOP_SYNTHESIZE:            {                for(i=0; i<30; i++)                    strcpy(fmdptop.syn_topmemo[i], "");                fmdptop.syn_num = num;                for(i=0; i<fmdptop.syn_num; i++){                    if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE)                        return;                    strcpy(fmdptop.syn_topmemo[i], tmpbuf);                }                            }            break;            case FM_TOP_DEALFOOD:            {                for(i=0; i<30; i++)                    strcpy(fmdptop.food_topmemo[i], "");                 fmdptop.food_num = num;                for(i=0; i<fmdptop.food_num; i++){                    if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE)                        return;                    strcpy(fmdptop.food_topmemo[i], tmpbuf);                }                            }            break;            case FM_TOP_PK:            {                for(i=0; i<30; i++)                    strcpy(fmdptop.pk_topmemo[i], "");                fmdptop.pk_num = num;                for(i=0; i<fmdptop.pk_num; i++){                    if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE)                        return;                    strcpy(fmdptop.pk_topmemo[i], tmpbuf);                }                            }            break;#ifdef _NEW_MANOR_LAW						case FM_TOP_MOMENTUM:						{							for(i=0; i<30; i++){								strcpy(fmdptop.momentum_topmemo[i], "");								if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE) break;								strcpy(fmdptop.momentum_topmemo[i],tmpbuf);							}							for(i=0; i<num; i++){								if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE) return;								getStringFromIndexWithDelim(tmpbuf,"|",1,tmpbuf1,sizeof(tmpbuf1));								// get top id								fmdptop.momentum_topid[i] = atoi(tmpbuf1);							}						}						break;#endif            default:            break;        }    }}void ACShowPointList(int result, char *data){    int i;    char tmpbuf[100];    if(result==0){       return;    }else{        for(i=0;i<FAMILY_MAXHOME;i++){            if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE)               return;            strcpy(fmpointlist.pointlistarray[i],tmpbuf);               }    }}void ACShowFMMemo(int result, int index, int num, int dataindex, char *data){   int  j;   char tmpbuf[220];      if(index==10000)   {       if(result==0){           return;       }else{           for(j=1;j<=140;j++){               strcpy(fmsmemo.memo[j-1],"");           }           for(j=1;j<=num;j++){               if(getStringFromIndexWithDelim(data,"|",j,tmpbuf,sizeof(tmpbuf)) == FALSE)                     return;               makeStringFromEscaped(tmpbuf);                   strcpy(fmsmemo.memo[j-1],tmpbuf);               }           fmsmemo.memonum   = num;           fmsmemo.memoindex = dataindex-1;           return;       }   }else{       if(result==0){           return;       }else{           if(num == -1){                 print("\n FamilyWorkIndex Error!!");           }           for(j=1;j<=35;j++){               strcpy(memberlist[index].memo[j-1],"");           }           for(j=1;j<=num;j++){               if(getStringFromIndexWithDelim(data,"|",j,tmpbuf,sizeof(tmpbuf)) == FALSE)                    return;               makeStringFromEscaped(tmpbuf);               strcpy(memberlist[index].memo[j-1],tmpbuf);               }           memberlist[index].memonum = num;           memberlist[index].memoindex = dataindex-1;           return;       }   }}#ifdef _PERSONAL_FAME   // Arminius: 家族显\\个人声望void ACFMCharLogin(int fd, int result, int index, int floor, int fmdp,	int joinflag, int fmsetupflag, int flag, int charindex, int charfame	#ifdef _NEW_MANOR_LAW	,int momentum	#endif	)#elsevoid ACFMCharLogin(int fd, int result, int index, int floor, int fmdp,	int joinflag, int fmsetupflag, int flag, int charindex)#endif{   char buf[1024];   int i, petindex;   int meindex = CONNECT_getCharaindex(fd);   if (!CHAR_CHECKINDEX(meindex))	return;   if (result == 1){#ifdef _NEW_MANOR_LAW		 // 气势回传为0时要把人物的气势设定为0,因为回传是0有可能是打完庄园战,所以气势要归零		 if(momentum == 0) CHAR_setInt(meindex,CHAR_MOMENTUM,0);		 else CHAR_setInt(meindex,CHAR_MOMENTUM,momentum);#endif		 if(charfame != CHAR_getInt(meindex,CHAR_FAME)){			 sprintf(buf,"server fame:%d,ac fame:%d",CHAR_getInt(meindex,CHAR_FAME),charfame);			 LogFamily(				 CHAR_getChar(meindex, CHAR_FMNAME),				 CHAR_getInt(meindex, CHAR_FMINDEX),				 CHAR_getChar(meindex, CHAR_NAME),				 CHAR_getChar(meindex, CHAR_CDKEY),				 "ACFMCharLogin",				 buf				 );		 }		 //CHAR_setInt(meindex,CHAR_FAME,charfame);		 CHAR_setWorkInt(meindex, CHAR_WORKFMINDEXI, index);		 CHAR_setWorkInt(meindex, CHAR_WORKFMFLOOR, floor);		 CHAR_setWorkInt(meindex, CHAR_WORKFMDP, fmdp);		 CHAR_setWorkInt(meindex, CHAR_WORKFMSETUPFLAG, fmsetupflag);		 CHAR_setWorkInt(meindex, CHAR_WORKFMCHARINDEX, charindex);		 if (CHAR_getInt(meindex, CHAR_FMLEADERFLAG) != joinflag)			 SetFMPetVarInit(meindex);		 CHAR_setInt(meindex, CHAR_FMLEADERFLAG, joinflag);		 		 JoinMemberIndex(meindex, index);		 		 CHAR_sendStatusString(meindex, "f");		 		 CHAR_complianceParameter( meindex );		 CHAR_sendCToArroundCharacter( CHAR_getWorkInt( meindex , CHAR_WORKOBJINDEX ));#ifdef _FMVER21		 if (CHAR_getInt(meindex, CHAR_FMLEADERFLAG) == FMMEMBER_LEADER)#else		 if (CHAR_getInt(meindex, CHAR_FMLEADERFLAG) == 1)#endif        		 {			 for (i = 0; i < CHAR_MAXPETHAVE; i++)			 {				 petindex = CHAR_getCharPet(meindex, i);				 if (!CHAR_CHECKINDEX(petindex))     continue;				 if (CHAR_getInt(petindex, CHAR_PETFAMILY) == 1)					 return;			 }			 for (i = 0; i < CHAR_MAXPOOLPETHAVE; i++)			 {				 petindex = CHAR_getCharPoolPet(meindex, i);				 if (!CHAR_CHECKINDEX(petindex))     continue;				 if (CHAR_getInt(petindex, CHAR_PETFAMILY) == 1)					 return;			 }			 lssproto_WN_send(fd, WINDOW_MESSAGETYPE_MESSAGE,				 WINDOW_BUTTONTYPE_OK,				 -1, -1,				 makeEscapeString("\n家族守护兽消失了!\n请立刻再选定一只守护兽,\n否则家族在七天之後会消失唷!\n", buf, sizeof(buf)));			 saacproto_ACFixFMData_send(acfd,				 CHAR_getChar(meindex, CHAR_FMNAME),				 CHAR_getInt(meindex, CHAR_FMINDEX),				 CHAR_getWorkInt(meindex, CHAR_WORKFMINDEXI), FM_FIX_DELFMTIME,				 "", "", CHAR_getWorkInt(meindex, CHAR_WORKFMCHARINDEX),				 CONNECT_getFdid(fd));		 }   }   else   {   	   SetFMVarInit(meindex);#ifdef _FM_JOINLIMIT		CHAR_setInt( meindex, CHAR_FMTIMELIMIT, (int)time(NULL)+(7*24)*(60*60) );#endif   	   if (flag == 0)   		   CHAR_talkToCli(meindex, -1, "你已经退出家族或家族已经不存在了!", CHAR_COLORYELLOW);	   // Robin 0928 ride bobo check	   if( CHAR_getInt( meindex, CHAR_RIDEPET ) != -1 )	   {		   int rideindex = CHAR_getCharPet( meindex, CHAR_getInt( meindex, CHAR_RIDEPET) );				   if( CHAR_getInt( rideindex, CHAR_BASEBASEIMAGENUMBER) == 100372 || CHAR_getInt( rideindex, CHAR_BASEBASEIMAGENUMBER) == 100373 )		   {			   CHAR_setInt( meindex, CHAR_RIDEPET, -1);			   CHAR_send_P_StatusString( meindex, CHAR_P_STRING_RIDEPET );						   CHAR_sendStatusString(meindex, "f");			   CHAR_complianceParameter( meindex );			   CHAR_sendCToArroundCharacter( CHAR_getWorkInt( meindex , CHAR_WORKOBJINDEX ));		   }	   }    }}void FAMILY_Detail(int fd, int meindex, char *message){	char token[128], token2[128], fmname[128];	char buf[1024], subbuf[256], sendbuf[2048];	int pindex1, i, j;	int fmindex, tempindex;		if (!CHAR_CHECKINDEX(meindex))	return;		if ((CHAR_getWorkInt(meindex, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE)		|| (CHAR_getWorkInt(meindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE))		return;		if (getStringFromIndexWithDelim(message, "|", 2, token,   	sizeof(token)) == FALSE)	return;		if ( strcmp(token,"F") ==0 )	{		if (getStringFromIndexWithDelim(message, "|", 3, token2,			sizeof(token)) == FALSE)	return;				strcpy( buf, "");		j = 0;					pindex1 = (atoi(token2) - 1)*10 +1;				for( i=pindex1 ; i< pindex1+10 ; i++  ) {			if( i > familyNumTotal )	break;			if( getStringFromIndexWithDelim( familyListBuf, "|", i, subbuf,				sizeof(subbuf) ) == FALSE)	break;			strcat( buf, "|" );			strcat( buf, subbuf );			j++;						// print(" |%s| ", subbuf);		}				sprintf( sendbuf, "S|F|%d|%d|%d%s", familyNumTotal, atoi(token2), j, buf );		lssproto_FM_send( fd, sendbuf );				return;	   				}		// shan add	if (strcmp(token, "P") == 0 ){		int  personfame;		char sendbuf[512];#ifdef _PERSONAL_FAME		personfame = (CHAR_getInt( meindex, CHAR_FAME)/100);#else		personfame = CHAR_getWorkInt( meindex, CHAR_WORKFMDP);#endif       		sprintf( sendbuf, "你目前的个人声望点数为:%d", personfame);		CHAR_talkToCli(meindex, -1, sendbuf, CHAR_COLORYELLOW);#ifdef _NEW_MANOR_LAW		sprintf(sendbuf,"你目前的个人气势点数为:%d",CHAR_getInt(meindex,CHAR_MOMENTUM)/100);		CHAR_talkToCli(meindex, -1, sendbuf, CHAR_COLORYELLOW);#endif	}		if(strcmp(token,"D") == 0){		if(getStringFromIndexWithDelim(message, "|", 3, fmname, sizeof(fmname)) == FALSE)	return;		if(getStringFromIndexWithDelim(message, "|", 4, token2, sizeof(token2)) == FALSE)	return;		fmindex = atoi( token2 );		if(getStringFromIndexWithDelim(message, "|", 5, token2, sizeof(token2)) == FALSE)	return;		tempindex = atoi( token2 );				//print(" send_fmname_ac:%s ", fmname);		saacproto_ACFMDetail_send( acfd, fmname, fmindex, tempindex, CONNECT_getFdid(fd) );	}

⌨️ 快捷键说明

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