📄 acfamily.c
字号:
// shan 2002/01/04 log("\nshan-->fmindex:%d fmname:%s newleadername:%s newleaderid->%s\n", fmindex, fmname, family[index].fmmemberindex[charindex].charname, family[index].fmmemberindex[charindex].charid ); strcpy(charname, family[index].fmmemberindex[charindex].charname); strcpy(charid, family[index].fmmemberindex[charindex].charid); charlv = family[index].fmmemberindex[charindex].charlv; onlineflag = family[index].fmmemberindex[charindex].onlineflag; charfdid = family[index].fmmemberindex[charindex].charfdid; popular = family[index].fmmemberindex[charindex].popular;#ifdef _NEW_MANOR_LAW momentum = family[index].fmmemberindex[charindex].momentum;#endif // 资料转换 strcpy(family[index].fmmemberindex[charindex].charname, family[index].fmmemberindex[0].charname); strcpy(family[index].fmmemberindex[charindex].charid, family[index].fmmemberindex[0].charid); family[index].fmmemberindex[charindex].charlv = family[index].fmmemberindex[0].charlv; family[index].fmmemberindex[charindex].charflag = FMMEMBER_MEMBER; family[index].fmmemberindex[charindex].onlineflag = family[index].fmmemberindex[0].onlineflag; family[index].fmmemberindex[charindex].charfdid = family[index].fmmemberindex[0].charfdid; family[index].fmmemberindex[charindex].popular = family[index].fmmemberindex[0].popular;#ifdef _NEW_MANOR_LAW family[index].fmmemberindex[charindex].momentum = family[index].fmmemberindex[0].momentum;#endif strcpy(family[index].fmmemberindex[0].charname, charname); strcpy(family[index].fmmemberindex[0].charid, charid); family[index].fmmemberindex[0].charlv = charlv; family[index].fmmemberindex[0].charflag = FMMEMBER_LEADER; family[index].fmmemberindex[0].onlineflag = onlineflag; family[index].fmmemberindex[0].charfdid = charfdid; family[index].fmmemberindex[0].popular = popular;#ifdef _NEW_MANOR_LAW family[index].fmmemberindex[0].momentum = momentum;#endif strcpy(family[index].fmleadername, charname); strcpy(family[index].fmleaderid, charid); family[index].fmleadergrano = recvdata; strcpy(family[index].petname, ""); strcpy(family[index].petattr, ""); // 更新族长资料 if (family[index].fmmemberindex[0].onlineflag > 0) {#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 saacproto_ACFMCharLogin_send( family[index].fmmemberindex[0].onlineflag, SUCCESSFUL, index, floor, family[index].fmtotalfame, family[index].fmmemberindex[0].charflag, family[index].fmsetupflag, 1, 0, family[index].fmmemberindex[0].popular, // Arminius 9.11 family[index].fmmemberindex[0].charfdid#ifdef _NEW_MANOR_LAW ,family[index].fmmemberindex[0].momentum#endif );#else saacproto_ACFMCharLogin_send( family[index].fmmemberindex[0].onlineflag, SUCCESSFUL, index, floor, family[index].fmpopular, family[index].fmmemberindex[0].charflag, family[index].fmsetupflag, 1, 0, family[index].fmmemberindex[0].charfdid);#endif } // 更新成员资料 if (family[index].fmmemberindex[charindex].onlineflag > 0) {#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 saacproto_ACFMCharLogin_send( family[index].fmmemberindex[charindex].onlineflag, SUCCESSFUL, index, floor, family[index].fmtotalfame, family[index].fmmemberindex[charindex].charflag, family[index].fmsetupflag, 1, charindex, family[index].fmmemberindex[charindex].popular, // Arminius 9.11 family[index].fmmemberindex[charindex].charfdid#ifdef _NEW_MANOR_LAW ,family[index].fmmemberindex[charindex].momentum#endif );#else saacproto_ACFMCharLogin_send( family[index].fmmemberindex[charindex].onlineflag, SUCCESSFUL, index, floor, family[index].fmpopular, family[index].fmmemberindex[charindex].charflag, family[index].fmsetupflag, 1, charindex, family[index].fmmemberindex[charindex].charfdid);#endif } }#endif#ifdef _NEW_MANOR_LAW else if (kindflag == 12){ family[index].fmmemberindex[charindex].momentum = recvdata; if(family[index].fmmemberindex[charindex].momentum < 0) family[index].fmmemberindex[charindex].momentum = 0; if(family[index].fmmemberindex[charindex].momentum > MAXFMPOPNUM) family[index].fmmemberindex[charindex].momentum = MAXFMPOPNUM; } else if(kindflag == 13){ family[index].fmmemberindex[charindex].popular = recvdata; }#endif if ((kindflag == 2) || (kindflag == 7) || (kindflag == 8) || (kindflag == 9) || (kindflag == 10)#ifdef _NEW_MANOR_LAW || (kindflag == 12) || (kindflag == 13)#endif ) {#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 // 记录玩家家族声望#ifndef _NEW_MANOR_LAW if (charindex >= 0 && charindex < MAX_MEMBERNUM) family[index].fmmemberindex[charindex].popular += recvdata;#endif // 计算家族声望 family[index].fmpopular = family[index].fmadv + family[index].fmfeed + family[index].fmsynthesize + family[index].fmdealfood + family[index].fmpk; { int j; family[index].fmtotalfame=family[index].fmpopular;#ifdef _NEW_MANOR_LAW family[index].fmmomentum = 0;#endif for (j = 0; j < MAX_MEMBERNUM; j++) { if ((family[index].fmmemberindex[j].charflag!=FMMEMBER_NONE) && (family[index].fmmemberindex[j].charflag!=FMMEMBER_APPLY) ) { family[index].fmtotalfame += family[index].fmmemberindex[j].popular;#ifdef _NEW_MANOR_LAW // 家族成员个人气势加总 family[index].fmmomentum += family[index].fmmemberindex[j].momentum;#endif } }#ifdef _NEW_MANOR_LAW // 家族气势 = (家族人数平方) / 10 + 1 + 家族成员个人气势加总 family[index].fmmomentum += ((family[index].fmjoinnum * family[index].fmjoinnum) / 10 + 1) * 100; log("\nACFixFMData total family momentum %d\n",family[index].fmmomentum);#endif } sortFamily(); if (family[index].fmpointindex >= 0){ fmpoint[family[index].fmpointindex].hadfmpopular = family[index].fmtotalfame; db_fmpointupdate = 1; }#else family[index].fmpopular = family[index].fmadv + family[index].fmfeed + family[index].fmsynthesize + family[index].fmdealfood + family[index].fmpk; sortFamily(); if (family[index].fmpointindex >= 0){ fmpoint[family[index].fmpointindex].hadfmpopular = family[index].fmpopular; db_fmpointupdate = 1; } // 记录玩家家族声望 if (charindex >= 0 && charindex < MAX_MEMBERNUM) family[index].fmmemberindex[charindex].popular = family[index].fmmemberindex[charindex].popular + recvdata;#endif // 更新族长资料 if (family[index].fmmemberindex[0].onlineflag > 0) { int floor = ACgetFMFloor(fmindex);#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 saacproto_ACFMCharLogin_send( family[index].fmmemberindex[0].onlineflag, SUCCESSFUL, index, floor, family[index].fmtotalfame,#ifdef _FMVER21 family[index].fmmemberindex[0].charflag, family[index].fmsetupflag, 1, 0,#else 1, family[index].fmsetupflag, 1, 0,#endif family[index].fmmemberindex[0].popular, // Arminius 9.11 family[index].fmmemberindex[0].charfdid#ifdef _NEW_MANOR_LAW ,family[index].fmmemberindex[0].momentum#endif );#else saacproto_ACFMCharLogin_send( family[index].fmmemberindex[0].onlineflag, SUCCESSFUL, index, floor, family[index].fmpopular,#ifdef _FMVER21 family[index].fmmemberindex[0].charflag, family[index].fmsetupflag, 1, 0,#else 1, family[index].fmsetupflag, 1, 0,#endif family[index].fmmemberindex[0].charfdid);#endif } } db_familyupdate[index] = 1; return kindflag;}// 更改PK後家族PK值int ACFixFMPK(int winindex, char* winfmname, int winfmindex, int loseindex, char* losefmname, int losefmindex){ int award = 0; if (CheckFM(&winindex, winfmname, winfmindex) < 0) return -1; if (CheckFM(&loseindex, losefmname, losefmindex) < 0) return -1; award = (family[loseindex].fmpopular / 10); if (family[loseindex].fmpopular - award < 0) award = family[loseindex].fmpopular; family[loseindex].fmpk = family[loseindex].fmpk - award; family[winindex].fmpk = family[winindex].fmpk + award; if (family[loseindex].fmpk < MINFMPOPNUM) {#if 1 // Robin 2003/11/27 修正输方家族PK声望到达下限时胜方可洗声望 int overpoint; overpoint = MINFMPOPNUM - family[loseindex].fmpk; family[winindex].fmpk = family[winindex].fmpk - overpoint;#endif family[loseindex].fmpk = MINFMPOPNUM; } // CoolFish: 2001/11/28 MINFMPOPNUM -> MAXFMPOPNUM if (family[winindex].fmpk > MAXFMPOPNUM) family[winindex].fmpk = MAXFMPOPNUM; { family[winindex].fmpopular = family[winindex].fmadv + family[winindex].fmfeed + family[winindex].fmsynthesize + family[winindex].fmdealfood + family[winindex].fmpk;#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 { int j; family[winindex].fmtotalfame=family[winindex].fmpopular; for (j = 0; j < MAX_MEMBERNUM; j++) { if ((family[winindex].fmmemberindex[j].charflag!=FMMEMBER_NONE) && (family[winindex].fmmemberindex[j].charflag!=FMMEMBER_APPLY) ) family[winindex].fmtotalfame += family[winindex].fmmemberindex[j].popular; } }#endif if (family[winindex].fmmemberindex[0].onlineflag > 0) { int floor = ACgetFMFloor(winfmindex);#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 saacproto_ACFMCharLogin_send( family[winindex].fmmemberindex[0].onlineflag, SUCCESSFUL, winindex, floor, family[winindex].fmtotalfame, #ifdef _FMVER21 family[winindex].fmmemberindex[0].charflag, family[winindex].fmsetupflag, 1, 0, #else 1, family[winindex].fmsetupflag, 1, 0, #endif family[winindex].fmmemberindex[0].popular, // Arminius 9.11 family[winindex].fmmemberindex[0].charfdid #ifdef _NEW_MANOR_LAW ,family[winindex].fmmemberindex[0].momentum #endif );#else saacproto_ACFMCharLogin_send( family[winindex].fmmemberindex[0].onlineflag, SUCCESSFUL, winindex, floor, family[winindex].fmpopular, #ifdef _FMVER21 family[winindex].fmmemberindex[0].charflag, family[winindex].fmsetupflag, 1, 0, #else 1, family[winindex].fmsetupflag, 1, 0, #endif family[winindex].fmmemberindex[0].charfdid);#endif } family[loseindex].fmpopular = family[loseindex].fmadv + family[loseindex].fmfeed + family[loseindex].fmsynthesize + family[loseindex].fmdealfood + family[loseindex].fmpk;#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 { int j; family[loseindex].fmtotalfame=family[loseindex].fmpopular; for (j = 0; j < MAX_MEMBERNUM; j++) { if ((family[loseindex].fmmemberindex[j].charflag!=FMMEMBER_NONE) && (family[loseindex].fmmemberindex[j].charflag!=FMMEMBER_APPLY) ) family[loseindex].fmtotalfame += family[loseindex].fmmemberindex[j].popular; } }#endif if (family[loseindex].fmmemberindex[0].onlineflag > 0) { int floor = ACgetFMFloor(losefmindex);#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 saacproto_ACFMCharLogin_send( family[loseindex].fmmemberindex[0].onlineflag, SUCCESSFUL, loseindex, floor, family[loseindex].fmtotalfame, #ifdef _FMVER21 family[loseindex].fmmemberindex[0].charflag, family[loseindex].fmsetupflag, 1, 0, #else 1, family[loseindex].fmsetupflag, 1, 0, #endif family[loseindex].fmmemberindex[0].popular, // Arminius 9.11 family[loseindex].fmmemberindex[0].charfdid #ifdef _NEW_MANOR_LAW ,family[loseindex].fmmemberindex[0].momentum #endif );#else saacproto_ACFMCharLogin_send( family[loseindex].fmmemberindex[0].onlineflag, SUCCESSFUL, loseindex, floor, family[loseindex].fmpopular, #ifdef _FMVER21 family[loseindex].fmmemberindex[0].charflag, family[loseindex].fmsetupflag, 1, 0, #else 1, family[loseindex].fmsetupflag, 1, 0, #endif family[loseindex].fmmemberindex[0].charfdid);#endif } } sortFamily(); if (family[winindex].fmpointindex >= 0) {#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 fmpoint[family[winindex].fmpointindex].hadfmpopular = family[winindex].fmtotalfame;#else fmpoint[family[winindex].fmpointindex].hadfmpopular = family[winindex].fmpopular;#endif db_fmpointupdate = 1; } if (family[loseindex].fmpointindex >= 0) {#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 fmpoint[family[loseindex].fmpointindex].hadfmpopular = family[loseindex].fmtotalfame;#else fmpoint[family[loseindex].fmpointindex].hadfmpopular = family[loseindex].fmpopular;#endif db_fmpointupdate = 1; } return award;}// 解散家族int ACDelFM(int index, char *fmname, int fmindex){ int i; if (CheckFM(&index, fmname, fmindex) < 0) return -1; log("\nACDelFM index:%d fmname:%s fmindex:%d\n", index, fmname, fmindex); if (family[index].fmpointindex >= 0) { delfmpointindex(family[index].fmindex); family[index].fmpointindex = -1; } if (family[index].memonum > 0) { for (i = 0; i < family[index].memonum; i++) memset(family[index].memolist[i], 0, sizeof(family[index].memolist[i])); } family[index].fmindex = -1; memset(family[index].fmname, 0, sizeof(family[index].fmname)); memset(family[index].memolist, 0, sizeof(family[index].memolist)); family[index].fmnum = 0; family[index].fmjoinnum = 0; family[index].fmsetupflag = -1; family[index].fmpopular = 0; family[index].fmadv = 0; family[index].fmfeed= 0; family[index].fmsynthesize = 0; family[index].fmdealfood = 0; family[index].fmpk = 0;#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 family[index].fmtotalfame = 0;#endif#ifdef _NEW_MANOR_LAW family[index].fmmomentum = 0;#endif for (i = 0; i < family[index].fmmemberindexmaxnum; i++) { // 传送最新状态给家族成员#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 if (family[index].fmmemberindex[i].onlineflag > 0) saacproto_ACFMCharLogin_send( family[index].fmmemberindex[i].onlineflag, FAILED, index, family[index].fmpointindex, family[index].fmtotalfame, -1, family[index].fmsetupflag, 0, i, family[index].fmmemberindex[i].popular, // Arminius 9.11 family[index].fmmemberindex[i].charfdid #ifdef _NEW_MANOR_LAW ,family[index].fmmemberindex[i].momentum #endif );#else if (family[index].fmmemberindex[i].onlineflag > 0) saacproto_ACFMCharLogin_send( family[index].fmmemberindex[i].onlineflag, FAILED, index, family[index].fmpointindex, family[index].fmpopular, -1, family[index].fmsetupflag, 0, i, family[index].fmmemberindex[i].charfdid);#endif memset(family[index].fmmemberindex[i].charname, 0, sizeof(family[index].fmmemberindex[i].charname)); memset(family[index].fmmemberindex[i].charid, 0, sizeof(family[index].fmmemberindex[i].charid)); family[index].fmmemberindex[i].charflag = FMMEMBER_NONE; family[index].fmmemberindex[i].predeltime = -1; family[index].fmmemberindex[i].po
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -