📄 npc_fmdengon.c
字号:
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))); } break; default: break; } // Switch End } // If End // 说明视窗(家族据点) else if( seqno == CHAR_WINDOWTYPE_FM_MESSAGE1) { int fd; char pointbuf[1024]; strcpy( pointbuf, ""); fd = getfdFromCharaIndex( talker ); if( fd == -1 ) return; switch( select ){ case WINDOW_BUTTONTYPE_OK: {#ifdef _FIX_FM_FMPOINT char x[4]; char y[4]; char fmindex[4]; char name[32]; int windowtype = WINDOW_MESSAGETYPE_MESSAGE; if( CHAR_getInt( talker, CHAR_FMLEADERFLAG) == FMMEMBER_LEADER && CHAR_getWorkInt(talker, CHAR_WORKFMSETUPFLAG)==1){ CHAR_setInt( talker, CHAR_LISTPAGE,0); int tkfmindex = CHAR_getWorkInt(talker, CHAR_WORKFMINDEXI); int i,check=TRUE; char fmindex[4]; for(i=0; i<MANORNUM; i++){ // 10个庄园 getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 5, fmindex, sizeof(fmindex)); if(tkfmindex==atoi(fmindex)-1 ){ check=FALSE; break; } } if(check==TRUE){ for (i=CHAR_getInt( talker, CHAR_LISTPAGE); i<CHAR_getInt( talker, CHAR_LISTPAGE)+5; i++){ // 10个庄园 getStringFromIndexWithDelim(fmpointlist.pointlistarray[i], "|", 5, fmindex, sizeof(fmindex)); if(atoi(fmindex)<=0 ){ check=TRUE; break; } } } if(check==TRUE){ windowtype = WINDOW_MESSAGETYPE_SELECT; strcpy(pointbuf,"3\n “家族据地列表”\n\n"); }else{ windowtype = WINDOW_MESSAGETYPE_MESSAGE; strcpy(pointbuf," “家族据地列表”\n\n"); } }else{ strcpy(pointbuf," “家族据地列表”\n\n"); } strcat(pointbuf," “地 点”“东”“南”“状 态”\n"); getStringFromIndexWithDelim( fmpointlist.pointlistarray[0],"|",3, x, sizeof( x)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[0],"|",4, y, sizeof( y)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[0],"|",5, fmindex, sizeof( fmindex)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[0],"|",6, name, sizeof( name)); if(atoi(fmindex)<=0)strcpy(name," 未占领"); sprintf(pointbuf,"%s 萨姆吉尔 %3s %3s %s\n", pointbuf, x, y, name); getStringFromIndexWithDelim( fmpointlist.pointlistarray[1],"|",3, x, sizeof( x)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[1],"|",4, y, sizeof( y)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[1],"|",5, fmindex, sizeof( fmindex)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[1],"|",6, name, sizeof( name)); if(atoi(fmindex)<=0)strcpy(name," 未占领"); sprintf(pointbuf,"%s 玛丽娜斯 %3s %3s %s\n", pointbuf, x, y, name); getStringFromIndexWithDelim( fmpointlist.pointlistarray[2],"|",3, x, sizeof( x)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[2],"|",4, y, sizeof( y)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[2],"|",5, fmindex, sizeof( fmindex)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[2],"|",6, name, sizeof( name)); if(atoi(fmindex)<=0)strcpy(name," 未占领"); sprintf(pointbuf,"%s 加 加 %3s %3s %s\n", pointbuf, x, y, name); getStringFromIndexWithDelim( fmpointlist.pointlistarray[3],"|",3, x, sizeof( x)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[3],"|",4, y, sizeof( y)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[3],"|",5, fmindex, sizeof( fmindex)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[3],"|",6, name, sizeof( name)); if(atoi(fmindex)<=0)strcpy(name," 未占领"); sprintf(pointbuf,"%s 卡鲁他那 %3s %3s %s\n", pointbuf, x, y, name); getStringFromIndexWithDelim( fmpointlist.pointlistarray[4],"|",3, x, sizeof( x)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[4],"|",4, y, sizeof( y)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[4],"|",5, fmindex, sizeof( fmindex)); getStringFromIndexWithDelim( fmpointlist.pointlistarray[4],"|",6, name, sizeof( name)); if(atoi(fmindex)<=0)strcpy(name," 未占领"); sprintf(pointbuf,"%s 伊 甸 %3s %3s %s\n", pointbuf, x, y, name);#else int i; strcpy( pointbuf, fmpointlist.pointlistarray[0]); strcat( pointbuf, "\n"); for( i=1; i<=FMPOINTNUM; i++){ strcat( pointbuf, fmpointlist.pointlistarray[i]); strcat( pointbuf, "\n"); }#endif#ifdef _FIX_FM_FMPOINT lssproto_WN_send( fd, windowtype, WINDOW_BUTTONTYPE_OK|WINDOW_BUTTONTYPE_NEXT, CHAR_WINDOWTYPE_FM_POINTLIST,#else lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_POINTLIST, WINDOW_BUTTONTYPE_OK, CHAR_WINDOWTYPE_FM_POINTLIST,#endif#ifndef _FM_MODIFY CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),#else -1,#endif#ifdef _FIX_FM_FMPOINT pointbuf);#else makeEscapeString( pointbuf, buf, sizeof(buf)));#endif } break; default: break; } } // 说明视窗(成员列表) else if( seqno == CHAR_WINDOWTYPE_FM_MESSAGE2) { int fd,i; char numberlistbuf[4096]; int fmindex_wk; fmindex_wk = CHAR_getWorkInt( talker, CHAR_WORKFMINDEXI); if( fmindex_wk < 0 || fmindex_wk >= FMMAXNUM) return; fd = getfdFromCharaIndex( talker ); if( fd == -1 ) return; switch( select ){ case WINDOW_BUTTONTYPE_OK: { strcpy( numberlistbuf, memberlist[fmindex_wk].numberlistarray[0]); strcat( numberlistbuf, "\n"); for( i=1; i<10; i++){ strcat( numberlistbuf, memberlist[fmindex_wk].numberlistarray[i]); strcat( numberlistbuf, "\n"); } // 增加程式码(向AC要召募人员的值) sprintf(enlistbuf, "是否继续召募家族人员|0|%d",memberlist[fmindex_wk].accept); strcat( numberlistbuf, enlistbuf); strcat( numberlistbuf, "\n"); lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_SELECT, WINDOW_BUTTONTYPE_OK| WINDOW_BUTTONTYPE_NEXT, CHAR_WINDOWTYPE_FM_MEMBERLIST,#ifndef _FM_MODIFY CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),#else -1,#endif makeEscapeString( numberlistbuf, buf, sizeof(buf))); } break; default: break; } } // 强者表的选项视窗 else if( seqno == CHAR_WINDOWTYPE_FM_DPSELECT) { 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 1: // 前叁十大家族综合声望列表 { int fd,i; char listbuf[4096]; fd = getfdFromCharaIndex( talker ); if( fd == -1 ) return; strcpy( listbuf, fmdptop.topmemo[0]); strcat( listbuf, "\n"); for( i=1; i<10; i++){ strcat( listbuf, fmdptop.topmemo[i]); strcat( listbuf, "\n"); } strcat( listbuf, "0\n");#ifdef _FMVER21 lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_TOP30DP,#else lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP,#endif WINDOW_BUTTONTYPE_OK| WINDOW_BUTTONTYPE_NEXT, CHAR_WINDOWTYPE_FM_DPTOP,#ifndef _FM_MODIFY CHAR_getWorkInt( index, CHAR_WORKOBJINDEX),#else -1,#endif makeEscapeString( listbuf, buf, sizeof(buf))); } break; case 2: // 前十大家族冒险列表 { int fd,i; char listbuf[4096]; fd = getfdFromCharaIndex( talker ); if( fd == -1 ) return; strcpy( listbuf, fmdptop.adv_topmemo[0]); strcat( listbuf, "\n"); for( i=1; i<10; i++){ strcat( listbuf, fmdptop.adv_topmemo[i]); strcat( listbuf, "\n"); } lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP, 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; case 3: // 前十大家族伺育列表 { int fd,i; char listbuf[4096]; fd = getfdFromCharaIndex( talker ); if( fd == -1 ) return; strcpy( listbuf, fmdptop.feed_topmemo[0]); strcat( listbuf, "\n"); for( i=1; i<10; i++){ strcat( listbuf, fmdptop.feed_topmemo[i]); strcat( listbuf, "\n"); } lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP, 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; case 4: // 前十大家族合成列表 { int fd,i; char listbuf[4096]; fd = getfdFromCharaIndex( talker ); if( fd == -1 ) return; strcpy( listbuf, fmdptop.syn_topmemo[0]); strcat( listbuf, "\n"); for( i=1; i<10; i++){ strcat( listbuf, fmdptop.syn_topmemo[i]); strcat( listbuf, "\n"); } lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP, 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; case 5: // 前十大家族料理列表 { int fd,i; char listbuf[4096]; fd = getfdFromCharaIndex( talker ); if( fd == -1 ) return; strcpy( listbuf, fmdptop.food_topmemo[0]); strcat( listbuf, "\n"); for( i=1; i<10; i++){ strcat( listbuf, fmdptop.food_topmemo[i]); strcat( listbuf, "\n"); } lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP, 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; case 6: // 前十大家族PK列表 { int fd,i; char listbuf[4096]; fd = getfdFromCharaIndex( talker ); if( fd == -1 ) return; strcpy( listbuf, fmdptop.pk_topmemo[0]); strcat( listbuf, "\n"); for( i=1; i<10; i++){ strcat( listbuf, fmdptop.pk_topmemo[i]); strcat( listbuf, "\n"); } lssproto_WN_send( fd, WINDOW_FMMESSAGETYPE_DP, 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; case 7: // 自己家族声望排行榜 { int fd,i,h,k,fmid; char listbuf[4096]; 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.fmtopid[h] == fmid ) break; k = h; // 标示颜色用(多传一个1,以供Client之用) if(h <= 4) h = 0; else if(h >= 994 ) h = 990; else h -= 4; strcpy( listbuf, fmdptop.topmemo[h]); if( k == h ) strcat( listbuf, "|1"); strcat( listbuf, "\n"); for( i = h + 1; i < h + 10; i++){ strcat( listbuf, fmdptop.topmemo[i]); if(i == k) strcat( listbuf, "|1"); 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; default: break; } } // 选项视窗 else if( seqno == CHAR_WINDOWTYPE_FM_SELECT) { int fmindex_wk; fmindex_wk = CHAR_getWorkInt( talker, CHAR_WORKFMINDEXI);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -