📄 acfamily.c
字号:
} 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 + -