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

📄 family.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 5 页
字号:
   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                }                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                }            }            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;            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	)#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){		 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);#ifdef _FM_LEADER_RIDE			if(floor==-1){				int i;				int petindex = CHAR_getCharPet( meindex,CHAR_getInt( meindex , CHAR_RIDEPET));				int petmetamo= CHAR_getInt( petindex , CHAR_BASEIMAGENUMBER);				for(i=0;i<FMPOINTNUM;i++){					if(CHAR_getInt( meindex, CHAR_FMLEADERFLAG ) == FMMEMBER_LEADER){					}else if(CHAR_getInt( meindex, CHAR_FMLEADERFLAG ) == FMMEMBER_ELDER){					}else if(CHAR_getInt( meindex, CHAR_FMLEADERFLAG ) == FMMEMBER_MEMBER){					}				}				if(i<FMPOINTNUM){					CHAR_setInt( meindex , CHAR_RIDEPET, -1 );					CHAR_setInt( meindex , CHAR_BASEIMAGENUMBER , CHAR_getInt( meindex , CHAR_BASEBASEIMAGENUMBER) );					CHAR_sendCToArroundCharacter( CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX ));					CHAR_send_P_StatusString( meindex, CHAR_P_STRING_RIDEPET );				}			}#endif		 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)+getJoinFamilyTime()*(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 _VIP_SERVER		sprintf(sendbuf,"你目前的个人会员点数为:%d",CHAR_getInt(meindex,CHAR_AMPOINT));		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) );	}		// shan begin	else if (strcmp(token, "D2") ==0 ) {		char sendbuf[2048], tmpbuf[1024], leadernamebuf[64];		int h, i = 0;		int meindex = CONNECT_getCharaindex(fd);		int  fmindex_wk = CHAR_getWorkInt( meindex, CHAR_WORKFMINDEXI);		if( fmindex_wk < 0 || fmindex_wk >= FAMILY_MAXNUM) return;				for( h=0; h<FAMILY_MAXNUM; h++)			if( fmdptop.fmtopid[h] == fmindex_wk )				break;			strcpy(tmpbuf, "");			for (i = 0 + 1; i < FAMILY_MAXHOME + 1; i++)			{				int fmpks_pos = i * MAX_SCHEDULE, index;				sprintf(fmname, "%s", CHAR_getChar(meindex, CHAR_FMNAME));				index = CHAR_getWorkInt(meindex, CHAR_WORKFMINDEXI);				if (fmpks[fmpks_pos + 1].flag == FMPKS_FLAG_MANOR_BATTLEBEGIN					|| fmpks[fmpks_pos + 1].flag == FMPKS_FLAG_MANOR_PREPARE					|| fmpks[fmpks_pos + 1].flag == FMPKS_FLAG_MANOR_OTHERPLANET)				{					if ((fmpks[fmpks_pos + 1].host_index == index          		&& strcmp(fmname, fmpks[fmpks_pos + 1].host_name) == 0)          	   || (fmpks[fmpks_pos + 1].guest_index == index          	   	&& strcmp(fmname, fmpks[fmpks_pos + 1].guest_name) == 0))					{          		struct tm tm1;							memcpy(&tm1, localtime((time_t *)&fmpks[fmpks_pos + 1].dueltime), sizeof(tm1));							sprintf(tmpbuf, "%d/%d %d:%d【%s】 %s vs %s",

⌨️ 快捷键说明

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