// 公佈欄的初始化(when gmsv start) BOOL NPC_FmDengonInit( int meindex) { int i; CHAR_setInt( meindex, CHAR_WHICHTYPE, CHAR_TYPEDENGON); if( CHAR_getInt(meindex, CHAR_FLOOR) == 777 ){ leaderdengonindex = meindex; } if( READTIME1 == 0 || READTIME2 == 0 || READTIME3 == 0 || READTIME4 == 0 ){ READTIME1 = NowTime.tv_sec+FM_WAITTIME, READTIME2 = NowTime.tv_sec+FM_WAITTIME, READTIME3 = NowTime.tv_sec+FM_WAITTIME, READTIME4 = NowTime.tv_sec+FM_WAITTIME; // 取得家族的成員列表(memberlist struct),以及家族的留言板 for( i=0; i<FMMAXNUM; i++){ saacproto_ACShowMemberList_send( acfd, i); saacproto_ACFMReadMemo_send( acfd, i); } // 家族之間的留言板所傳的值預設為 FMSDENGON_SN saacproto_ACFMReadMemo_send( acfd, FMSDENGON_SN); saacproto_ACFMPointList_send(acfd); saacproto_ACShowTopFMList_send(acfd, FM_TOP_INTEGRATE); saacproto_ACShowTopFMList_send(acfd, FM_TOP_ADV); saacproto_ACShowTopFMList_send(acfd, FM_TOP_FEED); saacproto_ACShowTopFMList_send(acfd, FM_TOP_SYNTHESIZE); saacproto_ACShowTopFMList_send(acfd, FM_TOP_DEALFOOD); saacproto_ACShowTopFMList_send(acfd, FM_TOP_PK); #ifdef _NEW_MANOR_LAW saacproto_ACShowTopFMList_send(acfd, FM_TOP_MOMENTUM); #endif } return TRUE; }
// CoolFish: Family Adv 2001/7/29 void AddFMAdv(int talker, int shiftbit) { int fmadv = 0; char buf[256]; #ifdef _NEW_MANOR_LAW char buf1[16]; #endif #ifdef _FMVER21 #else if (CHAR_getInt(talker, CHAR_FMINDEX) < 0) return; if (CHAR_getInt(talker, CHAR_FMLEADERFLAG) <= 0 ) return; if (strcmp(CHAR_getChar(talker, CHAR_FMNAME), "") == 0) return; #endif if (shiftbit >= arraysizeof(FMAdvTbl)) return; else fmadv = FMAdvTbl[shiftbit]; if (fmadv <= 0) return; sprintf(buf, "%d", fmadv); #ifdef _PERSONAL_FAME // Arminius 8.30: ����������� CHAR_earnFame(talker, fmadv); #endif #ifdef _NEW_MANOR_LAW sprintf(buf1, "%d", CHAR_getInt(talker,CHAR_FAME)); #endif #ifdef _FMVER21 if (CHAR_getInt(talker, CHAR_FMLEADERFLAG) > 0 && CHAR_getInt(talker, CHAR_FMLEADERFLAG) != FMMEMBER_APPLY) { // CoolFish: 2001/10/03 int fd = getfdFromCharaIndex(talker); saacproto_ACFixFMData_send(acfd, CHAR_getChar(talker, CHAR_FMNAME), CHAR_getInt(talker, CHAR_FMINDEX), CHAR_getWorkInt(talker, CHAR_WORKFMINDEXI), FM_FIX_FMADV, buf, #ifndef _NEW_MANOR_LAW "", #else buf1, #endif // CoolFish: 2001/10/03 CHAR_getWorkInt(talker, CHAR_WORKFMCHARINDEX), CONNECT_getFdid(fd)); // CHAR_getWorkInt(talker, CHAR_WORKFMCHARINDEX), 0); #ifdef _NEW_MANOR_LAW { int i; for(i=0;i<FAMILY_MAXHOME;i++){ // �κ�һ��ׯ������ս�ų�,����ֵһ�ı����ACҪ������������ if(fmpointlist.fm_inwar[i]){ saacproto_ACShowTopFMList_send(acfd, FM_TOP_MOMENTUM); break; } } } #endif } #ifdef _NEW_MANOR_LAW // δ���ͨ��ʱֻ���³�Ա����ֵ else if(CHAR_getInt(talker, CHAR_FMLEADERFLAG) == FMMEMBER_APPLY){ int fd = getfdFromCharaIndex(talker); sprintf(buf,"%d",CHAR_getInt(talker,CHAR_FAME)); saacproto_ACFixFMData_send(acfd, CHAR_getChar(talker,CHAR_FMNAME), CHAR_getInt(talker,CHAR_FMINDEX), CHAR_getWorkInt(talker,CHAR_WORKFMINDEXI), FM_FIX_FAME,buf,"", CHAR_getWorkInt(talker,CHAR_WORKFMCHARINDEX), CONNECT_getFdid(fd)); } #endif #else saacproto_ACFixFMData_send(acfd, CHAR_getChar(talker, CHAR_FMNAME), CHAR_getInt(talker, CHAR_FMINDEX), CHAR_getWorkInt(talker, CHAR_WORKFMINDEXI), FM_FIX_FMADV, buf, "", CHAR_getWorkInt(talker, CHAR_WORKFMCHARINDEX), 0); #endif }