?? npc_fmdengon.c
字號:
strcat( listbuf, "\n");
}
#ifdef _FMVER21
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_TOP30DP,
#else
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP,
#endif
WINDOW_BUTTONTYPE_OK|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_DPME,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( listbuf, buf, sizeof(buf)));
}
break;
#ifdef _NEW_MANOR_LAW
case 7: // 自己家族氣勢排名
{
int fd,h,fmid;
char listbuf[4096];
char szTempbuf[12];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
fmid = CHAR_getWorkInt(talker, CHAR_WORKFMINDEXI);
if( fmid < 0 ){
sprintf( NPC_sendbuf, " 『警 告』\n 抱歉!你不是家族人員,無法查看。");
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK,
-1,
-1,
makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
return;
}
for( h=0; h<FMMAXNUM; h++)
if( fmdptop.momentum_topid[h] == fmid )
break;
strcpy( listbuf, fmdptop.momentum_topmemo[h]);
sprintf(szTempbuf,"|%d",CHAR_getInt(talker,CHAR_MOMENTUM)/100);
strcat(listbuf,szTempbuf);
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_FM_MEMONTUM,
WINDOW_BUTTONTYPE_OK|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_DPME,
-1,
makeEscapeString( listbuf, buf, sizeof(buf)));
}
break;
#endif
default:
break;
}
}
// 選項視窗
else if( seqno == CHAR_WINDOWTYPE_FM_SELECT)
{
int fmindex_wk;
fmindex_wk = CHAR_getWorkInt( talker, CHAR_WORKFMINDEXI);
if( CHAR_getInt(talker, CHAR_FMINDEX) > 0 ){
if( fmindex_wk < 0 || fmindex_wk >= FMMAXNUM){
print("FamilyNumber Data Error!!");
return;
}
}
buttonevent = atoi(data);
switch( buttonevent ){
case FM_MEMBERLIST:
{
int fd;
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
if( CHAR_getInt(talker, CHAR_FMINDEX) <= 0){
sprintf( NPC_sendbuf, " 『警 告』\n 抱歉!你不是家族人員,不得使用公布欄。");
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE, WINDOW_BUTTONTYPE_OK,
-1, -1, makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
return;
}
/*
#ifdef _FMVER21
if( CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_LEADER ||
CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_ELDER ){
#else
if( CHAR_getInt( talker, CHAR_FMLEADERFLAG) == 1){
#endif
saacproto_ACShowMemberList_send( acfd, fmindex_wk);
READTIME1 = NowTime.tv_sec+FM_WAITTIME;
}else
*/
if( NowTime.tv_sec > READTIME1 ){
saacproto_ACShowMemberList_send( acfd, fmindex_wk);
READTIME1 = NowTime.tv_sec+FM_WAITTIME;
}
#ifdef _FMVER21
// if( CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_LEADER ||
// CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_ELDER ||
// CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_VICELEADER ){
if( CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_LEADER ||
CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_ELDER ){
#else
if( CHAR_getInt( talker, CHAR_FMLEADERFLAG) == 1 ){
#endif
sprintf( NPC_sendbuf, " 『族 長 需 知』\n請小心處理族員的資料,一經修改後就無法回復原態,敬請小心。");
}else{
sprintf( NPC_sendbuf, " 『列 表 需 知』\n 此表族長可作修改,族員僅能查看。");
}
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK,
CHAR_WINDOWTYPE_FM_MESSAGE2,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
}
break;
#ifdef _UN_FMPOINT
#else
case FM_FMPOINT:
{
int fd;
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
#ifdef _FMVER21
if( CHAR_getInt( talker, CHAR_FMLEADERFLAG) == FMMEMBER_LEADER ){
#else
if( CHAR_getInt( talker, CHAR_FMLEADERFLAG) == 1 ){
#endif
saacproto_ACFMPointList_send(acfd);
sprintf( NPC_sendbuf, " 『族 長 需 知』\n請小心慎選所申請的據點,一但選取據點後就無法回復原態,敬請小心。");
READTIME4 = NowTime.tv_sec+FM_WAITTIME;
}
else{
sprintf( NPC_sendbuf, " 『列 表 需 知』\n此表族長可以申請,其馀僅能查看。");
}
if( NowTime.tv_sec > READTIME4 ){
saacproto_ACFMPointList_send(acfd);
READTIME4 = NowTime.tv_sec+FM_WAITTIME;
}
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK,
CHAR_WINDOWTYPE_FM_MESSAGE1,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
}
break;
#endif //_UN_FMPOINT
case FM_FMDPTOP:
{
int fd;
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
if( NowTime.tv_sec > READTIME3 ){
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
READTIME3 = NowTime.tv_sec+FM_WAITTIME;
}
memset(NPC_sendbuf,0,sizeof(NPC_sendbuf));
strcpy( NPC_sendbuf, "\n 叁十大家族聲望列表\n");
strcat( NPC_sendbuf, " 十大冒險家族\n");
strcat( NPC_sendbuf, " 十大飼育家族\n");
#ifndef _NEW_MANOR_LAW
strcat( NPC_sendbuf, " 十大合成家族\n");
strcat( NPC_sendbuf, " 十大料理家族\n");
#endif
strcat( NPC_sendbuf, " 十大戰斗家族\n");
#ifdef _NEW_MANOR_LAW
strcat( NPC_sendbuf, " 十大氣勢家族\n");
#endif
strcat( NPC_sendbuf, " 自己家族聲望列表\n");
#ifdef _NEW_MANOR_LAW
strcat( NPC_sendbuf, " 自己家族氣勢排名\n");
#endif
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_SELECT,
WINDOW_BUTTONTYPE_NONE,
CHAR_WINDOWTYPE_FM_DPSELECT,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
}
break;
case FM_MEMBERMEMO:
{
int fd,i,dengonindex;
char tmp[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
if( CHAR_getInt(talker, CHAR_FMINDEX) <= 0){
sprintf( NPC_sendbuf, " 『警 告』\n 抱歉!你不是家族人員,不得使用公布欄。");
lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
WINDOW_BUTTONTYPE_OK,
-1,
-1,
makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
return;
}
if( NowTime.tv_sec > READTIME2 ){
saacproto_ACFMReadMemo_send( acfd, fmindex_wk);
READTIME2 = NowTime.tv_sec+FM_WAITTIME;
}
dengonindex = memberlist[fmindex_wk].memoindex;
if( memberlist[fmindex_wk].memoindex < 6 && memberlist[fmindex_wk].memonum < DENGONFILELINENUM ){
dengonindex = 6;
}
if( dengonindex >= 6 ){
strcpy( NPC_sendbuf, memberlist[fmindex_wk].memo[dengonindex - 6]);
strcat( NPC_sendbuf, "\n");
for( i=(dengonindex - 5); i<=dengonindex; i++){
strcat( NPC_sendbuf, memberlist[fmindex_wk].memo[i]);
strcat( NPC_sendbuf, "\n");
}
sprintf(tmp, "%d\n", dengonindex);
strcat( NPC_sendbuf, tmp);
}
if( dengonindex < 6 ){
strcpy( NPC_sendbuf,
memberlist[fmindex_wk].memo[memberlist[fmindex_wk].memonum + (dengonindex - 6)]);
strcat( NPC_sendbuf, "\n");
for( i=memberlist[fmindex_wk].memonum + (dengonindex - 5); i<memberlist[fmindex_wk].memonum; i++){
strcat( NPC_sendbuf, memberlist[fmindex_wk].memo[i]);
strcat( NPC_sendbuf, "\n");
}
for( i=0; i<=dengonindex; i++){
strcat( NPC_sendbuf, memberlist[fmindex_wk].memo[i]);
strcat( NPC_sendbuf, "\n");
}
sprintf(tmp, "%d\n", dengonindex);
strcat( NPC_sendbuf, tmp);
}
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DENGON,
WINDOW_BUTTONTYPE_OKCANCEL|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_DENGON,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
}
break;
#ifdef _UN_FMMEMO
#else
case FM_FMMEMO:
{
int fd,i,dengonindex;
char tmp[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
if( NowTime.tv_sec > READTIME3 ){
saacproto_ACFMReadMemo_send( acfd, FMSDENGON_SN);
READTIME3 = NowTime.tv_sec+FM_WAITTIME;
}
dengonindex = fmsmemo.memoindex;
if( fmsmemo.memoindex<6 || fmsmemo.memonum>FMSDENGONFILELINENUM ){
dengonindex = 6;
}
if( dengonindex >= 6 ){
strcpy( NPC_sendbuf, fmsmemo.memo[dengonindex - 6]);
strcat( NPC_sendbuf, "\n");
for( i=(dengonindex - 5); i<=dengonindex; i++){
strcat( NPC_sendbuf, fmsmemo.memo[i]);
strcat( NPC_sendbuf, "\n");
}
sprintf(tmp, "%d\n", dengonindex);
strcat( NPC_sendbuf, tmp);
}
if( dengonindex < 6 ){
if( (fmsmemo.memonum + (dengonindex - 6)) < 0 || (fmsmemo.memonum + (dengonindex - 6)) >= 140 )
return;
strcpy( NPC_sendbuf, fmsmemo.memo[fmsmemo.memonum + (dengonindex - 6)]);
strcat( NPC_sendbuf, "\n");
for( i=fmsmemo.memonum + (dengonindex - 5); i<fmsmemo.memonum; i++){
strcat( NPC_sendbuf, fmsmemo.memo[i]);
strcat( NPC_sendbuf, "\n");
}
for( i=0; i<=dengonindex; i++){
strcat( NPC_sendbuf, fmsmemo.memo[i]);
strcat( NPC_sendbuf, "\n");
}
sprintf(tmp, "%d\n", dengonindex);
strcat( NPC_sendbuf, tmp);
}
lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_FMSDENGON,
WINDOW_BUTTONTYPE_OKCANCEL|
WINDOW_BUTTONTYPE_PREV,
CHAR_WINDOWTYPE_FM_FMSDENGON,
#ifndef _FM_MODIFY
CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),
#else
-1,
#endif
makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
}
#endif//_UN_FMMEMO
break;
default:
break;
}
}
// 成員列表
else if( seqno == CHAR_WINDOWTYPE_FM_MEMBERLIST)
{
char numberlistbuf[4096],tmp_buffer[4096],dutybuf[64];
int numberlistindex;
int fmindex_wk;
fmindex_wk = CHAR_getWorkInt( talker, CHAR_WORKFMINDEXI);
if( fmindex_wk < 0 || fmindex_wk >= FMMAXNUM) return;
getStringFromIndexWithDelim(data,"|",1,tmp_buffer,sizeof(tmp_buffer));
numberlistindex = atoi(tmp_buffer);
getStringFromIndexWithDelim(data,"|",2,tmp_buffer,sizeof(tmp_buffer));
buttonevent = atoi(tmp_buffer);
getStringFromIndexWithDelim(data,"|",3,dutybuf,sizeof(dutybuf));
#ifdef _FMVER21
// if( buttonevent>=1 && buttonevent<=11 &&
// ( CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_LEADER ||
// CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_ELDER ||
// CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_VICELEADER ))
if( buttonevent>=1 && buttonevent<=11 &&
( CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_LEADER ||
CHAR_getInt( talker, CHAR_FMLEADERFLAG ) == FMMEMBER_ELDER ))
#else
if( buttonevent>=1 && buttonevent<=11 && CHAR_getInt( talker, CHAR_FMLEADERFLAG) == 1 )
#endif
{
int fd,i;
int int_status;
char getstatus[4096];
fd = getfdFromCharaIndex( talker );
if( fd == -1 ) return;
strcpy( getstatus, memberlist[fmindex_wk].numberlistarray[numberlistindex+buttonevent - 1]
+ (strlen( memberlist[fmindex_wk].numberlistarray[numberlistindex+buttonevent - 1]) - 1));
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -