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

📄 acfamily.c

📁 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
💻 C
📖 第 1 页 / 共 5 页
字号:
   }   else if (kindflag == 2)   {      for (i = 0; i < TOPFMLISTNUM; i++) {         if (strcmp(family[fmadvindex[i]].fmname, "") == 0)         {         	j++;        	continue;         }         sprintf(t1, "%d|%d|%s|%s|%d", fmadvindex[i], i + 1,         	family[fmadvindex[i]].fmname,         	family[fmadvindex[i]].fmleadername,      		(family[fmadvindex[i]].fmadv / 100));      	 if (i < TOPFMLISTNUM) strcat(t1, " ");      	 if (strlen(data) + strlen(t1) >= datasize)      	 {      	    log("getFMsortedlist: datafer overflow.");      	    return	-1;      	 }      	 strcat(data, t1);      }   }   else if (kindflag == 3)   {      for (i = 0; i < TOPFMLISTNUM; i++) {         if (strcmp(family[fmfeedindex[i]].fmname, "") == 0)         {         	j++;         	continue;         }         sprintf(t1, "%d|%d|%s|%s|%d", fmfeedindex[i], i + 1,         	family[fmfeedindex[i]].fmname,         	family[fmfeedindex[i]].fmleadername,      		(family[fmfeedindex[i]].fmfeed / 100));      	 if (i < TOPFMLISTNUM) strcat(t1, " ");      	 if (strlen(data) + strlen(t1) >= datasize)      	 {      	    log("getFMsortedlist: datafer overflow.");      	    return	-1;      	 }      	 strcat(data, t1);      }   }   else if (kindflag == 4)   {      for (i = 0; i < TOPFMLISTNUM; i++) {         if (strcmp(family[fmsynthesizeindex[i]].fmname, "") == 0)         {         	j++;         	continue;         }         sprintf(t1, "%d|%d|%s|%s|%d", fmsynthesizeindex[i], i + 1,         	family[fmsynthesizeindex[i]].fmname,         	family[fmsynthesizeindex[i]].fmleadername,      		(family[fmsynthesizeindex[i]].fmsynthesize / 100));      	 if (i < TOPFMLISTNUM) strcat(t1, " ");      	 if (strlen(data) + strlen(t1) >= datasize)      	 {      	    log("getFMsortedlist: datafer overflow.");      	    return	-1;      	 }      	 strcat(data, t1);      }   }   else if (kindflag == 5)   {      for (i = 0; i < TOPFMLISTNUM; i++) {         if (strcmp(family[fmdealfoodindex[i]].fmname, "") == 0)         {         	j++;         	continue;         }         sprintf(t1, "%d|%d|%s|%s|%d", fmdealfoodindex[i], i + 1,         	family[fmdealfoodindex[i]].fmname,         	family[fmdealfoodindex[i]].fmleadername,      		(family[fmdealfoodindex[i]].fmdealfood / 100));      	 if (i < TOPFMLISTNUM) strcat(t1, " ");      	 if (strlen(data) + strlen(t1) >= datasize)      	 {      	    log("getFMsortedlist: datafer overflow.");      	    return	-1;      	 }      	 strcat(data, t1);      }   }   else if (kindflag == 6)   {      for (i = 0; i < TOPFMLISTNUM; i++) {         if (strcmp(family[fmpkindex[i]].fmname, "") == 0)         {         	j++;         	continue;         }         sprintf(t1, "%d|%d|%s|%s|%d", fmpkindex[i], i + 1,         	family[fmpkindex[i]].fmname,         	family[fmpkindex[i]].fmleadername,      		(family[fmpkindex[i]].fmpk / 100));      	 if (i < TOPFMLISTNUM) strcat(t1, " ");      	 if (strlen(data) + strlen(t1) >= datasize)      	 {      	    log("getFMsortedlist: datafer overflow.");      	    return	-1;      	 }      	 strcat(data, t1);      }   }#ifdef _PERSONAL_FAME	// Arminius: 家族个人声望   else if (kindflag == 7)   {      for (i = 0; i < MAX_FAMILY; i++) {         if (strcmp(family[fmtotalfameindex[i]].fmname, "") == 0)         {         	j++;         	continue;         }         sprintf(t1, "%d|%d|%s|%s|%d", fmtotalfameindex[i], i + 1,         	family[fmtotalfameindex[i]].fmname,         	family[fmtotalfameindex[i]].fmleadername,      		(family[fmtotalfameindex[i]].fmtotalfame / 100));      	 if (i < MAX_FAMILY) strcat(t1, " ");      	 if (strlen(data) + strlen(t1) >= datasize)      	 {      	    log("getFMsortedlist: datafer overflow.");      	    return	-1;      	 }      	 strcat(data, t1);      }   }#endif#ifdef _NEW_MANOR_LAW	 else if(kindflag == 8){ // 十大气势家族(全部气势排名都传给game server)		 for(i=0;i<MAX_FAMILY;i++){			 if(strcmp(family[fmMomentumIndex[i]].fmname, "") == 0){				 j++;				 continue;			 }			 sprintf(t1,"%d|%d|%s|%s|%d",fmMomentumIndex[i], i + 1,				 family[fmMomentumIndex[i]].fmname,				 family[fmMomentumIndex[i]].fmleadername,					 (family[fmMomentumIndex[i]].fmmomentum)/100);			 if(i < MAX_FAMILY) strcat(t1," ");			 if(strlen(data) + strlen(t1) >= datasize){				 log("getFMsortedlist: datafer overflow.");				 return	-1;			 }			 strcat(data, t1);		 }	 }#endif   return i - j;}void AddFMMaintainSort(int index){   int i = 0, j = MAX_FAMILY - 1, k;   // modify popular sort   while ((family[fmpopularindex[i]].fmpopular >= family[index].fmpopular)   	&& (i < MAX_FAMILY) && CheckFMUse(fmpopularindex[i]))   {   		if (i == MAX_FAMILY -1)	break;   		i++;   }   while ((fmpopularindex[j] != index) && (j > 0)) j--;   if (j > i)   {   	for (k = j; k > i; k--) fmpopularindex[k] = fmpopularindex[k - 1];   	fmpopularindex[i] = index;   } else if (j < i) {   	log("ACAddFM: fmpopularindex add error (j < i)");   } else log("ACAddFM: fmpopularindex add error (j = i)");   // modify adv sort   i = 0;j = MAX_FAMILY;k = 0;   while ((family[fmadvindex[i]].fmadv >= family[index].fmadv)   	&& (i < MAX_FAMILY) && CheckFMUse(fmadvindex[i]))   {   		if (i == MAX_FAMILY -1)	break;   		i++;   }   while ((fmadvindex[j] != index) && (j > 0)) j--;   if (j > i)   {   	for (k = j; k > i; k--) fmadvindex[k] = fmadvindex[k - 1];   	fmadvindex[i] = index;   } else if (j < i) {   	log("ACAddFM: fmadvindex add error (j < i)");   } else log("ACAddFM: fmadvindex add error (j = i)");   // modify feed sort   i = 0; j = MAX_FAMILY; k = 0;   while ((family[fmfeedindex[i]].fmfeed >= family[index].fmfeed)   	&& (i < MAX_FAMILY) && CheckFMUse(fmfeedindex[i]))   {   		if (i == MAX_FAMILY -1)	break;   		i++;   }   while ((fmfeedindex[j] != index) && (j > 0)) j--;   if (j > i)   {   	for (k = j; k > i; k--) fmfeedindex[k] = fmfeedindex[k - 1];   	fmfeedindex[i] = index;   } else if (j < i) {   	log("ACAddFM: fmfeedindex add error (j < i)");   } else log("ACAddFM: fmfeedindex add error (j = i)");   // modify synthesize sort   i = 0;j = MAX_FAMILY;k = 0;   while ((family[fmsynthesizeindex[i]].fmsynthesize >= family[index].fmsynthesize)   	&& (i < MAX_FAMILY) && CheckFMUse(fmsynthesizeindex[i]))   {   		if (i == MAX_FAMILY -1)	break;   		i++;   }   while ((fmsynthesizeindex[j] != index) && (j > 0)) j--;   if (j > i)   {   	for (k = j; k > i; k--) fmsynthesizeindex[k] = fmsynthesizeindex[k - 1];   	fmsynthesizeindex[i] = index;   } else if (j < i) {   	log("ACAddFM: fmsynthesizeindex add error (j < i)");   } else log("ACAddFM: fmsynthesizeindex add error (j = i)");   // modify dealfood sort   i = 0;j = MAX_FAMILY;k = 0;   while ((family[fmdealfoodindex[i]].fmdealfood >= family[index].fmdealfood)   	&& (i < MAX_FAMILY) && CheckFMUse(fmdealfoodindex[i]))   {   		if (i == MAX_FAMILY -1)	break;   		i++;   }   while ((fmdealfoodindex[j] != index) && (j > 0)) j--;   if (j > i)   {   	for (k = j; k > i; k--) fmdealfoodindex[k] = fmdealfoodindex[k - 1];   	fmdealfoodindex[i] = index;   } else if (j < i) {   	log("ACAddFM: fmdealfoodindex add error (j < i)");   } else log("ACAddFM: fmdealfoodindex add error (j = i)");   // modify pk sort   i = 0;j = MAX_FAMILY;k = 0;   while ((family[fmpkindex[i]].fmpk >= family[index].fmpk)   	&& (i < MAX_FAMILY) && CheckFMUse(fmpkindex[i]))   {   		if (i == MAX_FAMILY -1)	break;   		i++;   }   while ((fmpkindex[j] != index) && (j > 0)) j--;   if (j > i)   {   	for (k = j; k > i; k--) fmpkindex[k] = fmpkindex[k - 1];   	fmpkindex[i] = index;   } else if (j < i) {   	log("ACAddFM: fmpkindex add error (j < i)");   } else log("ACAddFM: fmpkindex add error (j = i)");#ifdef _PERSONAL_FAME	// Arminius: 家族个人声望   // modify pk sort   i = 0;j = MAX_FAMILY;k = 0;   while ((family[fmtotalfameindex[i]].fmtotalfame >= family[index].fmtotalfame)   	&& (i < MAX_FAMILY) && CheckFMUse(fmtotalfameindex[i]))   {   		if (i == MAX_FAMILY -1)	break;   		i++;   }   while ((fmtotalfameindex[j] != index) && (j > 0)) j--;   if (j > i)   {   	for (k = j; k > i; k--) fmtotalfameindex[k] = fmtotalfameindex[k - 1];   	fmtotalfameindex[i] = index;   } else if (j < i) {   	log("ACAddFM: fmtotalfameindex add error (j < i)");   } else log("ACAddFM: fmtotalfameindex add error (j = i)");#endif#ifdef _NEW_MANOR_LAW   // modify momentum sort   i = 0;j = MAX_FAMILY;k = 0;   while ((family[fmMomentumIndex[i]].fmmomentum >= family[index].fmmomentum)   	&& (i < MAX_FAMILY) && CheckFMUse(fmMomentumIndex[i]))   {   		if (i == MAX_FAMILY -1)	break;   		i++;   }   while ((fmMomentumIndex[j] != index) && (j > 0)) j--;   if (j > i)   {   	for (k = j; k > i; k--) fmMomentumIndex[k] = fmMomentumIndex[k - 1];   	fmMomentumIndex[i] = index;   } else if (j < i) {   	log("ACAddFM: fmMomentumIndex add error (j < i)");   } else log("ACAddFM: fmMomentumIndex add error (j = i)");#endif}void DelFMMaintainSort(int index){     int i = 0,j;     // modify popular sort     while ((fmpopularindex[i] != index) && (i < MAX_FAMILY)) i++;     if (fmpopularindex[i] == index)     {        for (j = i; j < MAX_FAMILY - 1; j++)         	fmpopularindex[j] = fmpopularindex[j + 1];        fmpopularindex[MAX_FAMILY - 1] = index;	// move to last one     }     // modify adv sort     i = 0;j = 0;     while ((fmadvindex[i] != index) && (i < MAX_FAMILY)) i++;     if (fmadvindex[i] == index)     {        for (j = i; j < MAX_FAMILY - 1; j++)         	fmadvindex[j] = fmadvindex[j + 1];        fmadvindex[MAX_FAMILY - 1] = index;	// move to last one     }     // modify feed sort     i = 0;j = 0;     while ((fmfeedindex[i] != index) && (i < MAX_FAMILY)) i++;     if (fmfeedindex[i] == index)     {        for (j = i; j < MAX_FAMILY - 1; j++)         	fmfeedindex[j] = fmfeedindex[j + 1];        fmfeedindex[MAX_FAMILY - 1] = index;	// move to last one     }     // modify synthesize sort     i = 0;j = 0;     while ((fmsynthesizeindex[i] != index) && (i < MAX_FAMILY)) i++;     if (fmsynthesizeindex[i] == index)     {        for (j = i; j < MAX_FAMILY - 1; j++)         	fmsynthesizeindex[j] = fmsynthesizeindex[j + 1];        fmsynthesizeindex[MAX_FAMILY - 1] = index;	// move to last one     }     // modify dealfood sort     i = 0;j = 0;     while ((fmdealfoodindex[i] != index) && (i < MAX_FAMILY)) i++;     if (fmdealfoodindex[i] == index)     {        for (j = i; j < MAX_FAMILY - 1; j++)         	fmdealfoodindex[j] = fmdealfoodindex[j + 1];        fmdealfoodindex[MAX_FAMILY - 1] = index;	// move to last one     }     // modify pk sort     i = 0;j = 0;     while ((fmpkindex[i] != index) && (i < MAX_FAMILY)) i++;     if (fmpkindex[i] == index)     {        for (j = i; j < MAX_FAMILY - 1; j++)         	fmpkindex[j] = fmpkindex[j + 1];        fmpkindex[MAX_FAMILY - 1] = index;	// move to last one     }#ifdef _PERSONAL_FAME	// Arminius: 家族个人声望     // modify pk sort     i = 0;j = 0;     while ((fmtotalfameindex[i] != index) && (i < MAX_FAMILY)) i++;     if (fmtotalfameindex[i] == index)     {        for (j = i; j < MAX_FAMILY - 1; j++)         	fmtotalfameindex[j] = fmtotalfameindex[j + 1];        fmtotalfameindex[MAX_FAMILY - 1] = index;	// move to last one     }#endif#ifdef _NEW_MANOR_LAW		 // modify momentum sort     i = 0;j = 0;     while ((fmMomentumIndex[i] != index) && (i < MAX_FAMILY)) i++;     if (fmMomentumIndex[i] == index){        for (j = i; j < MAX_FAMILY - 1; j++)         	fmMomentumIndex[j] = fmMomentumIndex[j + 1];        fmMomentumIndex[MAX_FAMILY - 1] = index;	// move to last one     }#endif}// 从档案读取家族资料(启动时读取)int readFamily(char *dir){	char dirname[256];	DIR  *d;	struct dirent *de;	int i = 0, fmnum = 0, fmmaxnum = 0;	{		char tmp[256];		snprintf(tmp, sizeof(tmp), "%s", dir);		if (mkdir(tmp, 0755) == 0)			log("create %s\n", tmp);	}	snprintf(dirname, sizeof(dirname), "%s", dir);	d = opendir(dirname);	if (d == NULL){		log("cannot open %s\n", dirname);			return -1;	}	de = readdir(d);	if(de == NULL){		log("de == NULL\n");		return	-1;	}{	char filename[256];	struct stat s;	for (i = 0; i < MAX_FAMILY; i++){//		FILE *fp;		snprintf(filename, sizeof(filename), "%s/Family.%d", dirname, i);		if (stat(filename, &s) < 0)continue;		if (!(s.st_mode & S_IFREG)){			log("%s is not a regular file\n", filename);			continue;		}		if( readOneFamily( filename, i) != 1 ){			log("cannot open file %s %s\n", filename, strerror(errno));			continue;		}   	   	fmnum = fmnum + 1;

⌨️ 快捷键说明

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