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