?? family.c
字號:
/* LogFamily( CHAR_getChar( meindex, CHAR_FMNAME), CHAR_getInt( meindex, CHAR_FMINDEX), CHAR_getChar( meindex, CHAR_NAME), CHAR_getChar( meindex, CHAR_CDKEY), "DELFAMILY(家族解散)", "" );*/ } else lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK, -1, -1, makeEscapeString( "\n申請解散家族失敗!", buf, sizeof(buf))); CHAR_sendStatusString( meindex, "F");}void ACShowFMList(int result, int fmnum, char *data){ if( result != 1 ) return; //print("\ngetFamilyListFromAC:%d", fmnum ); 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#ifdef _NEW_MANOR_LAW fmdptop.fmMomentum[i] = -1; fmdptop.momentum_topid[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 #ifdef _NEW_MANOR_LAW getStringFromIndexWithDelim( tmpbuf, "|", 7, tmpbuf1, sizeof(tmpbuf1)); fmdptop.fmMomentum[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;#ifdef _NEW_MANOR_LAW case FM_TOP_MOMENTUM: { for(i=0; i<30; i++){ strcpy(fmdptop.momentum_topmemo[i], ""); if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE) break; strcpy(fmdptop.momentum_topmemo[i],tmpbuf); } for(i=0; i<num; i++){ if(getStringFromIndexWithDelim(data," ",i+1,tmpbuf,sizeof(tmpbuf)) == FALSE) return; getStringFromIndexWithDelim(tmpbuf,"|",1,tmpbuf1,sizeof(tmpbuf1)); // get top id fmdptop.momentum_topid[i] = atoi(tmpbuf1); } } break;#endif 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 #ifdef _NEW_MANOR_LAW ,int momentum #endif )#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){#ifdef _NEW_MANOR_LAW // 氣勢回傳為0時要把人物的氣勢設定為0,因為回傳是0有可能是打完莊園戰,所以氣勢要歸零 if(momentum == 0) CHAR_setInt(meindex,CHAR_MOMENTUM,0); else CHAR_setInt(meindex,CHAR_MOMENTUM,momentum);#endif 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); 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)+(7*24)*(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 _NEW_MANOR_LAW sprintf(sendbuf,"你目前的個人氣勢點數為:%d",CHAR_getInt(meindex,CHAR_MOMENTUM)/100); 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) ); }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -