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

📄 npc_exchangeman.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 5 页
字号:
}/*-----------------------------------------弁仿奶失件玄井日忒匀化五凶凛卞裟太请今木月[-------------------------------------------*/void NPC_ExChangeManWindowTalked( int meindex, int talkerindex, 								int seqno, int select, char *data){	/*--       及引歹曰卞中卅中午五反蔽   --*/	if( NPC_Util_CharDistance( talkerindex, meindex ) > 2) {		return;	}	switch( seqno) {		/*--白仿弘毛壅允凛及它奶件玉它--*/	  case CHAR_WINDOWTYPE_WINDOWEVENT_CLEANMSG:		if( select == WINDOW_BUTTONTYPE_YES) {			NPC_MsgDisp( meindex, talkerindex, 12);		}else if(select == WINDOW_BUTTONTYPE_NO) {		}		break;#ifdef _NEWEVENT	  case CHAR_WINDOWTYPE_WINDOWEVENT_STARTMSG:		if(select == WINDOW_BUTTONTYPE_NEXT) {			CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,				CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD) + 1);			NPC_MsgDisp( meindex, talkerindex, 99);		}else if(select == WINDOW_BUTTONTYPE_PREV) {			CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,				CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD) - 1);			NPC_MsgDisp( meindex, talkerindex, 99);		}		break;#else	  case CHAR_WINDOWTYPE_WINDOWEVENT_STARTMSG:		break;#endif		/*--伉弁巨旦玄及丐曰互午丹丢永本□斥--*/	  case CHAR_WINDOWTYPE_WINDOWEVENT_REQTHANK:			if(select == WINDOW_BUTTONTYPE_NEXT) {				 CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,					CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)+1);				NPC_MsgDisp( meindex, talkerindex, 22);			}else if(select == WINDOW_BUTTONTYPE_PREV) {				 CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,					CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)-1);				NPC_MsgDisp( meindex, talkerindex, 22);			}		break;				/*--失弁本皿玄及丐曰互午丹丢永本□斥--*/	  case CHAR_WINDOWTYPE_WINDOWEVENT_ACCTHANK:			if(select == WINDOW_BUTTONTYPE_NEXT) {				 CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,					CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)+1);				NPC_MsgDisp( meindex, talkerindex, 82);			}else if(select == WINDOW_BUTTONTYPE_PREV) {				 CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,					CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)-1);				NPC_MsgDisp( meindex, talkerindex, 82);			}		break;		/*--蜇箕及奶矛件玄毛鞅户月井--*/	  case CHAR_WINDOWTYPE_WINDOWEVENT_NOWEVENT:		if(select == WINDOW_BUTTONTYPE_YES) {			NPC_MsgDisp( meindex, talkerindex, 7);		}else if(select == WINDOW_BUTTONTYPE_NO){			NPC_MsgDisp( meindex, talkerindex, 1);		}		break;				/*--伉弁巨旦玄及丢奶件它奶件玉它--*/	  case CHAR_WINDOWTYPE_WINDOWEVENT_REQMAINMSG:		if(select == WINDOW_BUTTONTYPE_YES) {			CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,0);			NPC_MsgDisp( meindex, talkerindex, 2);		}else if(select == WINDOW_BUTTONTYPE_NO) {				}else if(select == WINDOW_BUTTONTYPE_NEXT) {			 CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,						CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)+1);			NPC_MsgDisp( meindex, talkerindex, 55);		}else if(select == WINDOW_BUTTONTYPE_PREV) {			CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,				CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)-1);			NPC_MsgDisp( meindex, talkerindex, 55);		}		break;		/*--熬仃潸曰及丢奶件及它奶件玉它--*/	  case CHAR_WINDOWTYPE_WINDOWEVENT_ACCMAINMSG:		if(select == WINDOW_BUTTONTYPE_YES) {			CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,0);#ifdef _NEWEVENT			NPC_MsgDisp( meindex, talkerindex, 81);#else			NPC_MsgDisp( meindex, talkerindex, 8);#endif		}else if(select == WINDOW_BUTTONTYPE_NO) {		}else if(select == WINDOW_BUTTONTYPE_NEXT) {			CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,				CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)+1);			NPC_MsgDisp( meindex, talkerindex, 66);		}else if(select == WINDOW_BUTTONTYPE_PREV) {			CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,				CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)-1);			NPC_MsgDisp( meindex, talkerindex, 66);		}		break;#ifdef _NEWEVENT	  case CHAR_WINDOWTYPE_WINDOWEVENT_ACCTHANKNEW:		  if(select == WINDOW_BUTTONTYPE_OK){			CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,0);				NPC_MsgDisp( meindex, talkerindex, 8);		  }else if(select == WINDOW_BUTTONTYPE_NEXT) {				 CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,					CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)+1);				NPC_MsgDisp( meindex, talkerindex, 81);		  }else if(select == WINDOW_BUTTONTYPE_PREV) {				 CHAR_setWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD,					CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)-1);				NPC_MsgDisp( meindex, talkerindex, 81);		  }		  break;#endif		/*--矢永玄及  毛芨尹月它奶件玉它--*/	  case CHAR_WINDOWTYPE_WINDOWPETSKILLSHOP:			if(CHAR_getWorkInt( talkerindex ,CHAR_WORKSHOPRELEVANTTRD) ==0) {				NPC_EventPetSkill( meindex, talkerindex, data);				NPC_MsgDisp( meindex, talkerindex, 25);			}else{				NPC_EventPetSkill( meindex, talkerindex, data);				NPC_MsgDisp( meindex, talkerindex, 88);			}		break;	}}/*------------------------- *  椭瘀毛心凶仄化中月井 --------------------------*/int NPC_ExChangeManEventCheck( int meindex, int talker, char *buff1){	char buff2[512];	char buff3[128];	char buf[512];	int i = 1,j = 1;	int loop = 0;		NPC_Util_GetStrFromStrWithDelim( buff1, "EVENT", buf, sizeof( buf));	/*-- EVENt及椭瘀毛赐  卞苇化中仁 --*/	while( getStringFromIndexWithDelim(buf, ",", i, buff2,sizeof( buff2))	 !=FALSE )	{		i++;		/*-- "&"互丐月及匹  醒椭瘀 --*/		if(strstr( buff2, "&")!=NULL){			j = 1;			loop = 0;			while(getStringFromIndexWithDelim(buff2, "&", j, buff3, sizeof( buff3))			 != FALSE )			{				j++;				if(NPC_EventBigSmallCheck( meindex, talker, buff3) == FALSE)				{					loop = 1;					break;				}			}							if(loop == 0){				i--;				return i;			}		/*--椭瘀互夫午勾--*/		}else{			if(NPC_EventBigSmallCheck( meindex, talker, buff2) == TRUE) {				i--;				return i;			}		}		}	return -1;}/*--------------------------------- *   凝筏寞民尼永弁 --------------------------------*/BOOL NPC_EventBigSmallCheck(int meindex,int talker, char* buf){	char buff2[128];	int kosuu;		/*--矢永玄及民尼永弁互反中匀化中月桦宁反域绎PET椭瘀毛民尼永弁允月 --*/	if(strstr( buf, "PET") != NULL) {		if(strstr( buf, "EV") != NULL) {			if(NPC_PetLvCheck( meindex, talker, buf, 1) != FALSE) return TRUE;		}else{			if(NPC_PetLvCheck( meindex, talker, buf, 0) != FALSE) return TRUE;		}		return FALSE;	}	/*--动票反}  骚及筏寞民尼永弁 --*/	if(strstr( buf, "<") != NULL) {		getStringFromIndexWithDelim( buf, "<", 2, buff2, sizeof( buff2));		kosuu = atoi( buff2);		getStringFromIndexWithDelim( buf, "<", 1, buff2, sizeof( buff2));		if(NPC_EventFreeIfCheck( meindex, talker, buff2, kosuu, 1) == TRUE) {			return TRUE;		}	}else if(strstr( buf, ">") != NULL) {		getStringFromIndexWithDelim( buf, ">", 2, buff2, sizeof(buff2));		kosuu = atoi(buff2);		getStringFromIndexWithDelim( buf, ">" ,1, buff2, sizeof(buff2));		if(NPC_EventFreeIfCheck( meindex, talker, buff2, kosuu, 2)==TRUE) {			return TRUE;		}	}else if(strstr( buf, "!=" ) != NULL) {		getStringFromIndexWithDelim( buf, "!=", 2, buff2, sizeof( buff2));		kosuu = atoi( buff2);		getStringFromIndexWithDelim( buf, "!=", 1, buff2, sizeof( buff2));		if(NPC_EventFreeIfCheck( meindex, talker, buff2, kosuu, 3) == TRUE) {			return TRUE;		}			}else if(strstr( buf, "=") != NULL) {		getStringFromIndexWithDelim( buf, "=", 2, buff2, sizeof( buff2));		kosuu = atoi( buff2);		getStringFromIndexWithDelim( buf, "=", 1, buff2, sizeof( buff2));		if(strstr( buf, "*") != NULL) {			if(NPC_EventReduce( meindex, talker, buf) == TRUE){				return TRUE;			}		}else if(NPC_EventFreeIfCheck( meindex, talker, buff2, kosuu, 0)		== TRUE)		{			return TRUE;		}	}		return FALSE;}/*----------------------------------- * 嫩  毛  凶仄化中月井及民尼永弁 *-----------------------------------*/BOOL NPC_EventFreeIfCheck(int meindex,int talker,char* buf,int kosuu,int flg){	/*--伊矛伙民尼永弁--*/	if(strcmp( buf, "LV") == 0) {		if(NPC_EventLevelCheck( meindex, talker, kosuu, flg) == TRUE) {			return TRUE;		}	}	/*--失奶  丞民尼永弁--*/	if(strcmp( buf, "ITEM") == 0) {		if(NPC_EventItemCheck( meindex, talker, kosuu, flg) == TRUE) {			return TRUE;		}	}	/*--蔽  奶矛件玄民尼永弁--*/	if(strcmp( buf, "ENDEV") == 0) {		if(NPC_ENDEventNoCheck( meindex, talker, kosuu, flg) == TRUE) {			return TRUE;		}	}	if(strcmp( buf, "NOWEV") == 0) {		if(NPC_NOWEventNoCheck( meindex, talker, kosuu, flg) == TRUE) {			return TRUE;		}	}	if(strcmp( buf, "SP" ) == 0) {		if(NPC_SavePointCheck( meindex, talker, kosuu, flg) == TRUE) {			return TRUE;		}	}	if(strcmp( buf, "TIME") == 0) {		if(NPC_TiemCheck( meindex, talker, kosuu, flg) == TRUE) {			return TRUE;		}	}	if(strcmp( buf, "IMAGE") == 0) {		if(NPC_ImageCheck( meindex, talker, kosuu, flg) == TRUE) {			return TRUE;		}	}#ifdef _ADD_reITEM	if(strstr( buf, "reITEM" ) != NULL) {		int i,count=0,itemindex=-1;		for( i = CHAR_STARTITEMARRAY ; i < CHAR_MAXITEMHAVE ; i++ ){			itemindex = CHAR_getItemIndex( talker , i );			if( !ITEM_CHECKINDEX( itemindex) )				++count;		}		if(NPC_EventBigSmallLastCheck( kosuu, count, flg) == TRUE)			return TRUE;	}#endif	return FALSE;}/*-------------------------------- *  矢永玄及伊矛伙毛民尼永弁允月 ---------------------------------*/BOOL NPC_PetLvCheck(int meindex,int talker,char *buf,int mode){	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];	char buff2[16];	char buf3[8];	int petno;	int baseno;	int petlevel = 0;	int flg=0;	int mypetlevel = 0;	int i = 0;	int petindex;	char name[512];	int cnt = 0;	int loop;		/*--隙烂今木凶矢永玄及瓜件田□  ID)毛潸  --*/	getStringFromIndexWithDelim( buf, "-", 2, buff2, sizeof( buff2));	if(strstr(buff2,"*") != NULL) {		getStringFromIndexWithDelim( buff2, "*", 1, buf3, sizeof( buf3));		petno = atoi( buf3);		getStringFromIndexWithDelim( buff2, "*", 2, buf3, sizeof( buf3));		loop = atoi( buf3);	}else{		petno = atoi( buff2);		loop = 1;	}	/*--矢永玄  互钒中化中月井及民尼永弁--*/	for(i=0; i < CHAR_MAXPETHAVE ; i++) {		if(loop == cnt) return TRUE;				petindex = CHAR_getCharPet( talker, i);		if( petindex == -1  )  continue;			/*--矢永玄及ID毛潸  仄化中仁--*/		baseno = CHAR_getInt( petindex, CHAR_PETID);		/* 矢永玄及ID午}蜇箕及乒□玉毛譬屯月 */		if( (baseno == petno) && (CHAR_getInt( petindex, CHAR_ENDEVENT)		 == mode))		 {			/*--伊矛伙毛民尼永弁允月--*/			mypetlevel = CHAR_getInt( petindex, CHAR_LV);			getStringFromIndexWithDelim( buf, "-", 1, buff2, sizeof( buff2));			if(strstr( buf, "<") != NULL) {				flg = 1;				getStringFromIndexWithDelim( buff2, "<", 2, buf3, sizeof(buf3));			}else if(strstr( buf, ">") != NULL) {				getStringFromIndexWithDelim( buff2, ">", 2, buf3, sizeof(buf3));				flg = 2;			}else if(strstr( buf, "=") != NULL) {				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)					{						cnt++;						continue;					}				}else {					CHAR_setWorkInt( talker, CHAR_WORKSHOPRELEVANTSEC, 0);					cnt++;					continue;				}			}		}	}		if(loop == cnt) return TRUE;	if(i == CHAR_MAXPETHAVE) return FALSE;	return FALSE;}/*-------------------------------- *  矢永玄及伊矛伙毛民尼永弁允月 ---------------------------------*/int NPC_PetLvCheckType2(int petindex,int meindex,int talker,char *buf,int mode){	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];	char buff2[16];	char buf3[8];	int petno;	int baseno;	int petlevel = 0;	int flg = 0;	int mypetlevel = 0;	char name[512];		/*--隙烂今木凶矢永玄及瓜件田□  ID)毛潸  --*/	getStringFromIndexWithDelim( buf, "-", 2, buff2, sizeof( buff2));	if(strstr(buff2,"*") != NULL) {		getStringFromIndexWithDelim( buff2, "*", 1, buf3, sizeof( buf3));		petno = atoi( buf3);	}else{		petno = atoi( buff2);	}		/*--矢永玄及ID毛潸  仄化中仁--*/	baseno = CHAR_getInt( petindex, CHAR_PETID);	/*--矢永玄及ID午}蜇箕及乒□玉毛譬屯月--*/	if( (baseno == petno) && (CHAR_getInt( petindex, CHAR_ENDEVENT)	 == mode))	{		/*--伊矛伙毛民尼永弁允月--*/		mypetlevel=CHAR_getInt( petindex, CHAR_LV);		getStringFromIndexWithDelim( buf, "-", 1,buff2,sizeof(buff2));		if(strstr( buf, "<") != NULL) {			flg = 1;			getStringFromIndexWithDelim( buff2, "<", 2,										 buf3, sizeof(buf3));		}else if(strstr( buf, ">") != NULL) {			getStringFromIndexWithDelim( buff2, ">", 2, buf3, sizeof(buf3));			flg = 2;		}else if(strstr( buf, "=") != NULL) {

⌨️ 快捷键说明

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