⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 npc_fmdengon.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 4 页
字号:
							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 + -