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

📄 npc_windowhealer.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 2 页
字号:
/*------------------------------------------------------------------------------------*/void NPC_WindowHealerWindowTalked( int meindex, int talkerindex, 								int seqno, int select, char *data){	if( NPC_Util_CharDistance( talkerindex, meindex ) > (CHAR_getWorkInt(meindex,CHAR_WORK_RANGE)+4)) return;	switch( seqno){	  case CHAR_WINDOWTYPE_WINDOWHEALER_STARTMSG:	  	if(atoi(data)==2)	/*--蓟  仄凶嫩   1--*/	  	{			NPC_WindowHealer_selectWindow( meindex, talkerindex, 1 );	  		  	}else if(atoi(data)==3){	  		NPC_WindowHealer_selectWindow( meindex, talkerindex, 2 );	  		  	}else if(atoi(data)==4){			NPC_WindowHealer_selectWindow( meindex, talkerindex, 6 );				}else if(atoi(data)==6){	  		if(NPC_PetHealerCheck( talkerindex)==TRUE){		  		NPC_WindowHealer_selectWindow( meindex, talkerindex, 9 );			}else{				NPC_WindowHealer_selectWindow( meindex, talkerindex, 10 );			}		}else if(select==WINDOW_BUTTONTYPE_CANCEL){	  	}	  	break;	  	  case CHAR_WINDOWTYPE_WINDOWHEALER_HPMSG:		if(select==WINDOW_BUTTONTYPE_OK){			NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 );				}else if(select==WINDOW_BUTTONTYPE_YES){			/*--云嗯及民尼永弁--*/			if(NPC_WindowMoneyCheck(meindex,talkerindex,1)==TRUE){				NPC_WindowHealer_selectWindow( meindex, talkerindex, 3 );			}else{				NPC_WindowHealer_selectWindow( meindex, talkerindex, 8 );			}		}else if(select==WINDOW_BUTTONTYPE_NO){			NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 );		}		break;	  case CHAR_WINDOWTYPE_WINDOWHEALER_SPIRITMSG:		if(select==WINDOW_BUTTONTYPE_OK){			NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 );				}else if(select==WINDOW_BUTTONTYPE_YES){			/*--云嗯及民尼永弁--*/			if(NPC_WindowMoneyCheck(meindex,talkerindex,2)==TRUE){				NPC_WindowHealer_selectWindow( meindex, talkerindex, 4 );			}else{				NPC_WindowHealer_selectWindow( meindex, talkerindex, 8 );			}				}else if(select==WINDOW_BUTTONTYPE_NO){			NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 );		}				break;	  case CHAR_WINDOWTYPE_WINDOWHEALER_OKHPMSG:		if(select==WINDOW_BUTTONTYPE_OK){			NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 );		}		break;	  case CHAR_WINDOWTYPE_WINDOWHEALER_OKSPIRITMSG:		if(select==WINDOW_BUTTONTYPE_OK){			NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 );		}		break;		  /*--蝈荚汊今六月--*/	  case CHAR_WINDOWTYPE_WINDOWHEALER_ALLMSG:		if(select==WINDOW_BUTTONTYPE_OK){			NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 );				}else if(select==WINDOW_BUTTONTYPE_YES){			if(NPC_WindowMoneyCheck(meindex,talkerindex,3)==TRUE){				NPC_WindowHealer_selectWindow( meindex, talkerindex, 7 );			}else{				NPC_WindowHealer_selectWindow( meindex, talkerindex, 8 );			}				}else if(select==WINDOW_BUTTONTYPE_NO){			NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 );		}		break;		  /*--蝈荚汊及瑛绊--*/	  case CHAR_WINDOWTYPE_WINDOWHEALER_OKALLMSG:		if(select==WINDOW_BUTTONTYPE_YES){			NPC_WindowHealer_selectWindow( meindex, talkerindex, 0 );		}		break;	}	if(select==WINDOW_BUTTONTYPE_CANCEL 	&& CHAR_getWorkInt( talkerindex, CHAR_WORKPARTYMODE ) == 2)	{		CHAR_sendWatchEvent( CHAR_getWorkInt( talkerindex, CHAR_WORKOBJINDEX),								CHAR_ACTPLEASURE,NULL,0,TRUE);		CHAR_setWorkInt( talkerindex, CHAR_WORKACTION, CHAR_ACTPLEASURE);	}}BOOL NPC_PetHealerCheck(int talker){	int petindex;	int i;		/*--矢永玄反云引仃匹荚汊仄化丐仆月--*/	for(i=0;i<CHAR_MAXPETHAVE;i++){    	petindex = CHAR_getCharPet(talker,i);		if( petindex == -1  )  continue;		if( !CHAR_CHECKINDEX( talker ) )  continue;						if( CHAR_getInt(petindex,CHAR_HP) != CHAR_getWorkInt(petindex,CHAR_WORKMAXHP) )		{			return TRUE;		}	}		return FALSE;}/*----------------------------------------------------------------------------*/void NPC_WindowHealerAllHeal( int talker,int mode ){	int i;	int petindex;	char petsend[64];		char msgbuf[64];	if(mode==1){    	CHAR_setInt( talker , CHAR_HP ,CHAR_getWorkInt( talker, CHAR_WORKMAXHP ) );	}else if(mode==2){    	CHAR_setInt( talker , CHAR_MP ,CHAR_getWorkInt( talker, CHAR_WORKMAXMP ) );	}else if(mode==3){    	/*--蝈荚汊---*/    	CHAR_setInt( talker , CHAR_HP ,CHAR_getWorkInt( talker, CHAR_WORKMAXHP ) );    	CHAR_setInt( talker , CHAR_MP ,CHAR_getWorkInt( talker, CHAR_WORKMAXMP ) );	}	/*--矢永玄反云引仃匹荚汊仄化丐仆月--*/	for(i=0;i<CHAR_MAXPETHAVE;i++){    	petindex = CHAR_getCharPet(talker,i);		if( petindex == -1  )  continue;		if( !CHAR_CHECKINDEX( talker ) )  continue;		/*--荚汊--*/		CHAR_setFlg( petindex,CHAR_ISDIE,0 );		CHAR_setInt( petindex , CHAR_HP ,CHAR_getWorkInt( petindex, CHAR_WORKMAXHP ) );		CHAR_setInt( petindex , CHAR_MP ,CHAR_getWorkInt( petindex, CHAR_WORKMAXMP ) );		/*--由仿丢□正譬帮--*/		CHAR_complianceParameter( petindex );		sprintf( petsend, "K%d", i );		CHAR_sendStatusString( talker , petsend );	}	/*--由仿丢□正霜曰--*/	CHAR_send_P_StatusString(talker,CHAR_P_STRING_HP);	CHAR_send_P_StatusString(talker,CHAR_P_STRING_MP);	/*---醮棉互中木壬醮棉卞手霜耨--*/	if(CHAR_getWorkInt( talker, CHAR_WORKPARTYMODE) != CHAR_PARTY_NONE )	{		int	topartyarray = -1;		int	oyaindex = CHAR_getWorkInt( talker	, CHAR_WORKPARTYINDEX1);		if( CHAR_CHECKINDEX( oyaindex )) {			int		i;					for( i = 0; i < CHAR_PARTYMAX; i ++ ) {				int workindex = CHAR_getWorkInt( oyaindex, CHAR_WORKPARTYINDEX1 +i);						if( CHAR_CHECKINDEX( workindex) ) {					if( workindex == talker ) {						topartyarray = i;						break;					}				}			}					for( i = 0; i < CHAR_PARTYMAX; i ++ ) {				int otherindex = CHAR_getPartyIndex( talker, i);						/* 醮棉由仿丢□正毛霜月 */				if( CHAR_CHECKINDEX( otherindex) ) {					snprintf( msgbuf, sizeof( msgbuf), "N%d", topartyarray);					if( otherindex != talker) {						CHAR_sendStatusString( otherindex, msgbuf);					}				}			}		}	}}/*-------------------------------------伊矛伙民尼永弁	涩烂伊矛伙动晓卅日	FALSE---------------------------------------*/BOOL NPC_WindowHealerLevelCheck(int meindex,int talker){		int level;			level=CHAR_getWorkInt(meindex,CHAR_WORK_LEVEL);		if(level > CHAR_getInt(talker,CHAR_LV)){			return TRUE;		}		return FALSE;}/*-------------------------------------------娄醒talker’’’’平乓仿弁正□及奶件犯永弁旦---------------------------------------------*/BOOL NPC_WindowMoneyCheck(int meindex,int talker,int mode){	int cost=0;	int level;		level=CHAR_getWorkInt(meindex,CHAR_WORK_LEVEL);		if(mode==1){		if(level <= CHAR_getInt(talker,CHAR_LV)){			/*---云嗯毛喃曰请允---*/			cost=NPC_WindowCostCheck(meindex,talker);			/*--蜇箕反移涩烂---*/			/*---云嗯互箫曰月井升丹井及民尼永弁---*/			if(CHAR_getInt(talker,CHAR_GOLD) < cost){				return FALSE;						}			CHAR_DelGold( talker, cost);		}	}	if(mode==2){		if(level <= CHAR_getInt(talker,CHAR_LV)){			/*---云嗯毛喃曰请允---*/			cost=NPC_WindowCostCheckMp(meindex,talker);				/*--蜇箕反移涩烂---*/			/*---云嗯互箫曰月井升丹井及民尼永弁---*/			if(CHAR_getInt(talker,CHAR_GOLD) < cost){				return FALSE;			}			CHAR_DelGold( talker, cost);		}	}	if(mode==3){		if(level <= CHAR_getInt(talker,CHAR_LV)){			if( CHAR_getInt(talker,CHAR_HP) <CHAR_getWorkInt( talker, CHAR_WORKMAXHP))			{				cost=NPC_WindowCostCheck(meindex,talker);			}			if( CHAR_getInt(talker,CHAR_MP) < CHAR_getWorkInt( talker, CHAR_WORKMAXMP))			{				cost=cost+NPC_WindowCostCheckMp(meindex,talker);			}					/*--移涩烂--*/			if(CHAR_getInt(talker,CHAR_GOLD) < cost){				return FALSE;			}					/*---云嗯毛蛹日允---*/			CHAR_DelGold( talker, cost);		}			}		CHAR_send_P_StatusString(talker,CHAR_P_STRING_GOLD);	return TRUE;}/*-----------------------------------------戊旦玄及煌遥------------------------------------------*/int NPC_WindowCostCheck(int meindex,int talker){	int cost;	double drate;	int rate;		rate=CHAR_getWorkInt(meindex,CHAR_WORK_HP);	drate=(double) rate / 1000 ;	cost=CHAR_getInt(talker,CHAR_LV);	cost=(int)cost*drate;	if(cost < 1) cost=1;	return cost;}/*-----------------------------------------------------------------------------------*/int NPC_WindowCostCheckMp(int meindex,int talker){	int cost;	double drate;	int rate;		rate=CHAR_getWorkInt(meindex,CHAR_WORK_MP);	drate=(double) rate / 1000 ;	cost=CHAR_getInt(talker,CHAR_LV);	cost=(int)cost*drate;	if(cost==0) cost=1;	return cost;}

⌨️ 快捷键说明

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