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

📄 npc_exchangeman.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 5 页
字号:
			getStringFromIndexWithDelim( buff2, "=", 2, buf3, sizeof(buf3));			flg = 0;		}				petlevel = atoi(buf3);		if(NPC_EventBigSmallLastCheck( petlevel, mypetlevel, flg)		 == TRUE)		{			/*--矢永玄及  蟆互涩烂今木化中凶日  蟆及民尼永弁  月--*/			if(CHAR_getWorkInt(talker,CHAR_WORKSHOPRELEVANTSEC) == 1) {				char *usename;				/*--涩烂白央奶伙及  心  心--*/				if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr)) == NULL) {					print("PetLevel:GetArgStrErr");					return FALSE;				}								usename = CHAR_getUseName( petindex);				NPC_Util_GetStrFromStrWithDelim(argstr,"Pet_Name",												name, sizeof( name));					if(strcmp( name, usename) == 0)				{					return TRUE;				}			}else {				CHAR_setWorkInt( talker, CHAR_WORKSHOPRELEVANTSEC, 0);				return TRUE;			}		}	}	return FALSE;}/*------------------------ *请  鳔及民尼永弁 --------------------------*/BOOL NPC_SavePointCheck(int meindex,int talker,int shiftbit,int flg){	int point;	point = CHAR_getInt( talker, CHAR_SAVEPOINT);		if( (point & ( 1<< shiftbit))  == ( 1<< shiftbit)) {		if(flg == 3) return FALSE;		return TRUE;	}	if(flg == 3) return TRUE;	return FALSE;}/*------------------------ *奶丢□斥及民尼永弁 --------------------------*/BOOL NPC_ImageCheck(int meindex,int talker,int kosuu,int flg){	int image;	image = CHAR_getInt( talker, CHAR_IMAGETYPE);		if(NPC_EventBigSmallLastCheck( image, kosuu, flg) == TRUE) {		return TRUE;	}	return FALSE;}/*----------------------------------------- * 凛棉及民尼永弁毛垫丹(丐中引中凛棉) ------------------------------------------*/BOOL NPC_TiemCheck(int meindex,int talker,int time,int flg){	LSTIME		nowlstime;	int now;	RealTimeToLSTime( NowTime.tv_sec, &nowlstime);	now = getLSTime( &nowlstime);	if(NPC_EventBigSmallLastCheck( time, now, flg) == TRUE) {		return TRUE;	}	return FALSE;}/*------------------------------ *--Item毛民尼永弁				 -------------------------------*/BOOL NPC_EventItemCheck(int meindex,int talker,int itemNo,int flg){	int i;	int itemindex = -1;	int id;	//Change fix 不检查穿戴在身上的道具	for( i = CHAR_STARTITEMARRAY ; i < CHAR_MAXITEMHAVE ; i++ ) {		itemindex=CHAR_getItemIndex( talker , i );		if( ITEM_CHECKINDEX( itemindex) ) {			id=ITEM_getInt( itemindex ,ITEM_ID );			if(NPC_EventBigSmallLastCheck( itemNo, id, flg) == TRUE) {				if(flg == 0)	return TRUE;				continue;			}else{				if(flg == 0) continue;				return FALSE;			}		}	}	if(flg == 3) return TRUE;	return FALSE;}/*------------------------------ * level毛民尼永弁				 -------------------------------*/BOOL NPC_EventLevelCheck(int meindex,int talker,int level,int flg){	int mylevel;	mylevel = CHAR_getInt(talker,CHAR_LV);	if(NPC_EventBigSmallLastCheck( level, mylevel, flg) == TRUE)	{		if(flg == 3) return FALSE;		return TRUE;	}	if(flg == 3) return TRUE;	return FALSE;}/*------------------------------ * ENDEventNo毛民尼永弁 -------------------------------*/BOOL NPC_ENDEventNoCheck(int meindex,int talker,int shiftbit,int flg){	if(NPC_EventCheckFlg( talker, shiftbit) == TRUE) {		if(flg == 3) return FALSE;		return TRUE;	}	if(flg == 3) return TRUE;	return FALSE;}/*------------------------------ * NOWEventNo毛民尼永弁 -------------------------------*/BOOL NPC_NOWEventNoCheck(int meindex,int talker,int shiftbit,int flg){	if(NPC_NowEventCheckFlg( talker, shiftbit) == TRUE) {		if(flg == 3) return TRUE;		return TRUE;	}	if(flg == 3) return TRUE;	return FALSE;}/*--------------------------------------- *    蔽民尼永弁 --------------------------------------*/BOOL NPC_EventBigSmallLastCheck(int point1,int mypoint,int flg){	if(flg == 0) {		if(point1 == mypoint) {			return TRUE;		}	}else if(flg == 1) {		if(mypoint < point1) {			return TRUE;		}	}else if(flg == 2) {		if(mypoint > point1) {			return TRUE;		}	}else if(flg == 3) {		if(point1 != mypoint) {			return TRUE;		}	}	return FALSE;}/*--------------------------------- *丢永本□斥毛请  允月 *----------------------------------*/void NPC_MsgDisp(int meindex,int talker,int num){	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];#ifdef _NEWEVENT	char buf[4096];	char token2[4096];	char buf2[4096];	char token[4096];	char tmp[4096];#else	char buf[1024*2];	char token2[50*14];	char buf2[512];	char token[512];	char tmp[32];#endif	int i = 1;	int work = 0;	int EvNo = 0;	int fd = getfdFromCharaIndex( talker);	int buttontype = WINDOW_BUTTONTYPE_OK;	int windowtype = CHAR_WINDOWTYPE_WINDOWEVENT_STARTMSG;	int evch;		if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr)) == NULL) {		print("MsgDisp:GetArgStrErr");		print("NPCName=%s\n", CHAR_getChar( meindex, CHAR_NAME));		return ;	}	if(num == 22 || num == 82 || num == 55 || num == 66) {		int pwork;		pwork = CHAR_getWorkInt( talker, CHAR_WORKSHOPRELEVANTTRD);		pwork = (pwork / 100) -1 ;		getStringFromIndexWithDelim( argstr, "EventEnd", pwork, buf,sizeof( buf));			}else{		/*涩烂白央奶伙毛坌喃允月*/		while(getStringFromIndexWithDelim( argstr, "EventEnd", i, buf, sizeof(buf))		 != FALSE)		{			i++;			CHAR_setWorkInt( talker, CHAR_WORKSHOPRELEVANTSEC, 0);						/*--奶矛件玄瓜件田□毛必永玄--*/			NPC_Util_GetStrFromStrWithDelim( buf, "EventNo", buf2, sizeof( buf2));			if(strstr( buf2, "-1") != 0) {				EvNo = -1;			}else{				EvNo = atoi( buf2);			}			EvNo = atoi( buf2);			/*--白仿弘民尼永弁毛垫丹[允匹卞}仇及奶矛件玄互蔽  仄化中月桦宁反戚尺--*/			if(NPC_EventCheckFlg( talker, EvNo) == TRUE) continue;			/*--平□伐□玉及民尼永弁毛垫丹--*/			if(NPC_Util_GetStrFromStrWithDelim( buf,"Pet_Name", buf2,sizeof( buf2)) 			 != NULL )			{				CHAR_setWorkInt( talker, CHAR_WORKSHOPRELEVANTSEC, 1);			}			/*--平□伐□玉及民尼永弁毛垫丹--*/			if(NPC_Util_GetStrFromStrWithDelim( buf,"KeyWord", buf2,sizeof( buf2) ) 			 != NULL)			{					if(CHAR_getWorkInt( talker ,CHAR_WORKSHOPRELEVANT) != i) continue;			}			evch = NPC_ExChangeManEventCheck( meindex, talker, buf);			if(evch != -1) {			/*--奶矛件玄椭瘀及民尼永弁--*/		//	if(NPC_ExChangeManEventCheck( meindex, talker, buf) == TRUE) {				break;			}		}	}		//print(" NPC_MsgDisp:%d ", num);		switch( num) {		  case 0:			/*蜇箕及奶矛件玄毛鞅户月井升丹井毛  仁丢永本□斥--*/			if( NPC_Util_GetStrFromStrWithDelim( buf, "StopMsg", 												buf2, sizeof( buf2) )			 != NULL)			{				strcpysafe( token,sizeof( buf2), buf2);				buttontype = WINDOW_BUTTONTYPE_YESNO;				windowtype = CHAR_WINDOWTYPE_WINDOWEVENT_NOWEVENT;			}		break;				  case 1:		  	/*--支户月井升丹井毛  中凶今中及NO毛蚕尹凶桦宁及丢永本□斥--*/			if( NPC_Util_GetStrFromStrWithDelim( buf, "NoStopMsg",												 buf2, sizeof( buf2))			 != NULL)			{				strcpysafe( token, sizeof(buf2), buf2);			}		break;				  case 7:			/*--蜇箕及奶矛件玄毛鞅户凶午五及丢永本□斥--*/			if( NPC_Util_GetStrFromStrWithDelim( buf, "EndStopMsg",												 buf2, sizeof( buf2))			 != NULL)			{				strcpysafe( token, sizeof( buf2), buf2);							/*--奶矛件玄  毛  匀化中凶桦宁反壅蛔--*/				NPC_EventAdd( meindex, talker, 1);							/*--白仿弘毛壅允--*/				NPC_NowEventSetFlgCls( talker, EvNo);							/*--蝇匀凶及匹}    毛今仆凶--*/				if(CHAR_getInt( talker, CHAR_CHARM) > 0) {					CHAR_setInt( talker, CHAR_CHARM, CHAR_getInt(talker,CHAR_CHARM) -1);					CHAR_complianceParameter( talker );					CHAR_send_P_StatusString( talker, CHAR_P_STRING_CHARM);					NPC_CharmStatus( meindex, talker);				}			}		break;				  case 2:				/*--丐曰互午丹丢永本□斥--*/				if( NPC_Util_GetStrFromStrWithDelim( buf, "ThanksMsg",													 buf2, sizeof( buf2) )				 != NULL)				{					strcpysafe( token,sizeof( buf2), buf2);					/*--奶矛件玄  白仿弘毛本永玄--*/					if(NPC_EventAdd(meindex, talker, 0) != FALSE) {						NPC_NowEventSetFlg( talker, EvNo);					}					else {						return;					}													if(NPC_Util_GetStrFromStrWithDelim( buf, "EndSetFlg", 													buf2, sizeof( buf2) )					!=NULL)					{						char buf3[16];						int k = 1;						if(EvNo != -1) NPC_NowEventSetFlgCls( talker, EvNo);												while(getStringFromIndexWithDelim(buf2 , "," ,k, 												buf3, sizeof(buf3))						 !=FALSE )						{								k++;							NPC_EventSetFlg( talker, atoi( buf3));						}					}					if( NPC_Util_GetStrFromStrWithDelim( buf, "CleanFlg",													 buf2, sizeof( buf2)) 					 != NULL) {					 	char buf3[16];						int k = 1;					 	k= 1 ;						while(getStringFromIndexWithDelim(buf2 , "," , k, 															buf3, sizeof(buf3))						!= FALSE )						{							NPC_NowEndEventSetFlgCls( talker, atoi(buf3));							k++;						}					}												}				CHAR_setWorkInt( talker, CHAR_WORKSHOPRELEVANTTRD, 1);				work = CHAR_getWorkInt( talker, CHAR_WORKSHOPRELEVANTTRD);				work = work + ( i * 100);				CHAR_setWorkInt( talker, CHAR_WORKSHOPRELEVANTTRD, work);								if(NPC_Util_GetStrFromStrWithDelim( buf,"NpcWarp",										token2,sizeof( token2) )				!= NULL){					NPC_EventWarpNpc(meindex,token2);				}				/*--戚矢□斥互丐月桦宁反示正件方它奶件玉它及正奶皿毛井尹月--*/				if(strstr( buf, "ThanksMsg2") != NULL) {					/*仇仇匹霜耨允月*/					lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,								WINDOW_BUTTONTYPE_NEXT,								CHAR_WINDOWTYPE_WINDOWEVENT_REQTHANK,								CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),								token);					return;				}		break;		   case 22:								work = CHAR_getWorkInt( talker, CHAR_WORKSHOPRELEVANTTRD);				work = work % 100;				if(work == 1){					if( NPC_Util_GetStrFromStrWithDelim( buf, "ThanksMsg",														 buf2, sizeof( buf2) )					 != NULL)					{						strcpysafe( token,sizeof( buf2), buf2);					}					/*--戚矢□斥互丐月桦宁反示正件方它奶件玉它及正奶皿毛井尹月--*/					if(strstr( buf, "ThanksMsg2") != NULL) {											/*仇仇匹霜耨允月*/						lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,									WINDOW_BUTTONTYPE_NEXT,									CHAR_WINDOWTYPE_WINDOWEVENT_REQTHANK,									CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),									token);						return;					}								}else{										sprintf( tmp, "ThanksMsg%d", work);					if( NPC_Util_GetStrFromStrWithDelim( buf, tmp,														 buf2, sizeof( buf2) )					 != NULL) {						strcpysafe( token,sizeof( buf2), buf2);					}						work++;					sprintf( tmp, "ThanksMsg%d", work);							/*--戚矢□斥互丐月桦宁反示正件方它奶件玉它及正奶皿毛井尹月--*/					if(strstr( buf, tmp) != NULL) {												/*仇仇匹霜耨允月*/						lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,									WINDOW_BUTTONTYPE_NEXT,									CHAR_WINDOWTYPE_WINDOWEVENT_REQTHANK,									CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),									token);						return;					}else{						lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,									WINDOW_BUTTONTYPE_OK,									CHAR_WINDOWTYPE_WINDOWEVENT_REQTHANK,									CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),									token);						return;					}				}		break;		  case 25:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -