Пример #1
0
void NPC_PetSkillShopLooked( int meindex , int lookedindex)
{
    if( CHAR_getInt( lookedindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }
	if( NPC_Util_CharDistance( lookedindex, meindex ) > 2) return;
}
Пример #2
0
void NPC_WindowHealerTalked( int meindex , int talkerindex , char *szMes ,int color )
{
    if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }

	if( NPC_Util_CharDistance( talkerindex, meindex ) 
		> CHAR_getWorkInt(meindex,CHAR_WORK_RANGE)){
		return;
	}
	if( (CHAR_getWorkInt(talkerindex,CHAR_WORKPARTYMODE) == 0)
	 || (CHAR_getWorkInt(talkerindex,CHAR_WORKPARTYMODE) == 2) ){
		NPC_WindowHealer_selectWindow( meindex, talkerindex,0);
	}else{
		int i=0;
		int otherindex;

		for( i=0 ; i < CHAR_PARTYMAX ;i++){
			otherindex=CHAR_getWorkInt(talkerindex,CHAR_WORKPARTYINDEX1+i);
			if(otherindex != -1){
				NPC_WindowHealer_selectWindow( meindex, otherindex,0);
			}
		}
	}
}
Пример #3
0
static void NPC_Duelranking_selectWindow( int meindex, int toindex, int num, int select)
{
	
	int		fd;
	if( CHAR_getInt( toindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
		return;
	}
	if( NPC_Util_CharDistance( toindex, meindex ) > 1) return;
	if( (fd = getfdFromCharaIndex( toindex)) == -1 ) return;

	switch( num){
	case 1:
		{
			char	message[1024];
			char	buf[2048];
			strcpy( message, 
				"1\n"
				"             要看哪一个?              \n\n\n"
				"             <强者们>              \n\n"
				"             < 自己 >              \n\n"
				"             <都不看>              \n\n" );
			lssproto_WN_send( fd, WINDOW_MESSAGETYPE_SELECT, 
							WINDOW_BUTTONTYPE_NONE,
							CHAR_WINDOWTYPE_DUELRANKING_START,
							CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
							makeEscapeString( message, buf, sizeof(buf)));
		}
		break;
	}
}
Пример #4
0
/*-----------------------------------------
�ͷ���ʧ��������߯�Ȼ������ݱ���̫���ľ�£�
-------------------------------------------*/
void NPC_BodyLanWindowTalked(
	int meindex,
	int talkerindex,
	int seqno,
	int select,
	char *data
)
{


	if( NPC_Util_CharDistance( talkerindex, meindex ) > 2) return;

	switch( seqno){
	case BODYLAN_WIN_LAST_GOOD:	// ��ݩ�ݱ�OK�ɽ�ľ����
		if(select==WINDOW_BUTTONTYPE_YES ){
			NPC_BodyLan_Profit( meindex, talkerindex );
			// ��������������м��̼������͵�ë٨ľ������
			CHAR_setWorkInt( talkerindex, CHAR_WORKTRADER, -1 );
			// �ˡ���������  �پ��ձ������
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 1 );
		}else
		if( select == WINDOW_BUTTONTYPE_NO ){
			// ��ݩ�ݱ�ƽ�Ҽ������ľ����
			NPC_BodyLan_Window( meindex, talkerindex, BODYLAN_WIN_GOOD_NO );
			// ��������������м��̼������͵�ë٨ľ������
			CHAR_setWorkInt( talkerindex, CHAR_WORKTRADER, -1 );
			// �ˡ���������  �پ��ձ������
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 1 );
		}
		break;
	default:
		break;
	}

}
Пример #5
0
void NPC_AlldomanTalked( int meindex , int talker , char *msg ,int color )
{
     if( NPC_Util_CharDistance( talker, meindex ) > 1) return;
     if( NPC_Util_isFaceToFace( talker, meindex , 1 ) == FALSE ) return;
	 showpage = 1 ; 
	 NPC_Alldoman_selectWindow(meindex, talker , 4 ,"");
}
/************************************************
 * Ïä·¤«¤±¤é¤ì¤¿»þ¤Î½èÍý
 ************************************************/
void NPC_PrintpassmanTalked( int meindex , int talkerindex , char *msg ,
							 int color )
{
	int i;
	int charnum;
	/* ¥×¥ì¥¤¥ä¡¼¤¬¥É¥¢¥Þ¥ó¤Î2¥°¥ê¥Ã¥É°ÊÆâ¤Ê¤éÈ¿±þ¤¹¤ë¡£ */
	if(NPC_Util_CharDistance( talkerindex, meindex ) > 2)return;
	
	/* ¼«Ê¬ÍѤδÉÍý¿Í¤Î̾Á°¤ò¸¡º÷¤¹¤ë*/
	charnum  = CHAR_getCharNum();
	for(i= CHAR_getPlayerMaxNum() +CHAR_getPetMaxNum();
		i<charnum;
		i++){

		if( CHAR_getCharUse(i) &&
			CHAR_getInt( i ,CHAR_WHICHTYPE) == CHAR_TYPEROOMADMIN ){
			if( strcmp( CHAR_getWorkChar(i,CHAR_WORKCHAR_MYNAME),
						CHAR_getWorkChar( meindex, CHAR_WORKCHAR_ADMNAME))
				==0 )
			{
				break;
			}
		}
	}
	if( i < charnum ) {
		NPC_RoomAdminNew_DspRoomPasswd( meindex, i, talkerindex);
	}
	else {
		CHAR_talkToCli( talkerindex, meindex, "¡C¡C¡C", NPC_RANKING_MSGCOLOR);
	}
}
Пример #7
0
void NPC_PetSkillShopTalked( int meindex , int talkerindex , char *szMes ,int color )
{
    if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }
	if(NPC_Util_isFaceToFace(talkerindex,meindex,2 )==FALSE){
		if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;
	}
	NPC_PetSkillShop_selectWindow( meindex, talkerindex,0,-1);
}
void NPC_PetRaceMasterTalked( int meindex , int talkerindex , char *szMes , int color )
{
	// ©|¶··s¼W»¡©ú¥H¤ÎÃdª«ª¬ªp
	if (CHAR_getInt(talkerindex, CHAR_WHICHTYPE) != CHAR_TYPEPLAYER)
		return;
	if (NPC_Util_isFaceToFace(talkerindex, meindex, 2) == FALSE)
		if (NPC_Util_CharDistance(talkerindex, meindex) > 1)
			return;
	NPC_PetRaceMaster_selectWindow(meindex, talkerindex, 0, -1);
}
Пример #9
0
void NPC_TimeManTalked( int meindex , int talkerindex , char *msg ,int color )
{
	char	argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	char token[512];
	char buf[512];
	int tokennum=0;
	int i;


	/*--目の前にいるかどうか?--*/
	if(NPC_Util_isFaceToFace( meindex ,talkerindex ,2)==FALSE){
		/* 1グリッド以内のみ */
		if( NPC_Util_CharDistance( talkerindex ,meindex ) > 1) return;
	}

	if(CHAR_getInt(meindex,CHAR_BASEIMAGENUMBER)==9999){
		/*--消えているモード--*/
		return;
	}

	if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr))==NULL){
		print("GetArgStrErr");	
		return;
	}
	

	if( CHAR_getInt(talkerindex,CHAR_WHICHTYPE) != CHAR_TYPEPLAYER )return;
	
	if( NPC_Util_charIsInFrontOfChar( talkerindex, meindex, 3 ) ==FALSE) return;




	if(CHAR_getWorkInt(meindex,E_INT_MODE)==0){
		/*--メッセージを返す */
		NPC_Util_GetStrFromStrWithDelim(argstr,"main_msg",buf,sizeof( buf) );
 	
 	}else{
 		/*グラフィックNOを変えただけなので、違うメッセージを返す */
		NPC_Util_GetStrFromStrWithDelim(argstr,"change_msg",buf,sizeof( buf) );
 	}

   	tokennum = 1;
   	/* コンマで区切られたトークンが何こあるか数える */
	 for( i=0;buf[i]!='\0';i++ ){
          if( buf[i] == ',' ) tokennum++;
     }
 
    /* ランダムでどれを喋るか決めて、そのトークンを取りだす */
    getStringFromIndexWithDelim( buf,",", rand()%tokennum+1,token, sizeof(token));
	/*--しゃべる--*/
	CHAR_talkToCli( talkerindex, meindex, token, CHAR_COLORWHITE );


}
Пример #10
0
void NPC_WindowHealerLooked( int meindex , int lookedindex)
{
    if( CHAR_getInt( lookedindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }
	if( NPC_Util_CharDistance( lookedindex, meindex ) 
		> CHAR_getWorkInt(meindex,CHAR_WORK_RANGE)){
		 return;
	}
	NPC_WindowHealer_selectWindow( meindex, lookedindex,0);
}
Пример #11
0
void NPC_FreePetSkillShopTalked( int meindex , int talkerindex , char *szMes ,int color )
{
    if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }
	if(NPC_Util_isFaceToFace(talkerindex,meindex,2 )==FALSE){
		if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;
	}
	CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 1 );

	NPC_FreePetSkillShop_selectWindow( meindex, talkerindex, START_WINDOW,-1);
}
Пример #12
0
void NPC_PoolItemShopTalked( int meindex , int talkerindex , 
							char *szMes ,int color )
{
	if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
		return;
	}
	CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);
	if( !NPC_Util_isFaceToFace( meindex, talkerindex, 2)) {
		if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;
	}
	NPC_PoolItemShop_printWindow_Start( meindex, talkerindex);
}
/************************************************
 * Ïä·¤«¤±¤é¤ì¤¿»þ¤Î½èÍý
 ************************************************/
void NPC_RoomAdminNewTalked( int meindex , int talkerindex , char *msg ,
							 int color )
{
	
	/* ¥×¥ì¥¤¥ä¡¼¤¬¥É¥¢¥Þ¥ó¤Î1¥°¥ê¥Ã¥É°ÊÆâ¤Ê¤éÈ¿±þ¤¹¤ë¡£ */
	if(NPC_Util_CharDistance( talkerindex, meindex ) > 1)return;
	
	/* Ïä·¤«¤±¤é¤ì¤¿¿Í¤¬Éô²°¤ò¼Ú¤ê¤Æ¤¤¤¿¤é¥Ñ¥¹¥ï¡¼¥É¤òɽ¼¨¤¹¤ë */
	/*NPC_RoomAdminNew_DspRoomPasswd( meindex, talkerindex);*/
	
	/* ¼¡²ó³«ºÅ»þ´Ö¡¤Éô²°¤ò¸À¤¦ */
	NPC_RoomAdminNew_DspNextAuction( meindex, talkerindex);
}
Пример #14
0
void NPC_SignBoardLooked( int meindex , int lookedindex)
{

    if( CHAR_getInt( lookedindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }

	if( NPC_Util_CharDistance( lookedindex, meindex ) > 1) return;


	NPC_SignBoard_Window( meindex, lookedindex,0,-1);

}
Пример #15
0
void NPC_DuelrankingWindowTalked( int meindex, int talkerindex, int seqno, int select, char *data)
{
	int fdid = getFdidFromCharaIndex( talkerindex);
	if( fdid == -1 ) return;

	if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;
	switch( seqno){
	case CHAR_WINDOWTYPE_DUELRANKING_START:
		if( atoi( data) == 3 ) {
			saacproto_DBGetEntryByCount_send( acfd, 
											DB_DUELPOINT, 0, 
								NPC_DUELRANKING_WINDOWLINENUM, fdid, 
								CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX));
		}
		if( atoi( data) == 5 ) {
			char dbkey[256];
			CHAR_makeDBKey( talkerindex, dbkey, sizeof( dbkey));
			saacproto_DBGetEntryRank_send( acfd, DB_DUELPOINT, dbkey, fdid,
								CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX));
		}
		break;
	case CHAR_WINDOWTYPE_DUELRANKING_TOPRANKING:
		if( select == WINDOW_BUTTONTYPE_PREV || select == WINDOW_BUTTONTYPE_NEXT) {
			int	count = CHAR_getWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT);
			if( select == WINDOW_BUTTONTYPE_NEXT ) {
				count += NPC_DUELRANKING_WINDOWLINENUM;
			}else {
				count -= NPC_DUELRANKING_WINDOWLINENUM;
			}
	
			if( count < 0) count = 0;
			saacproto_DBGetEntryByCount_send( acfd, 
											DB_DUELPOINT, 
											count,
								NPC_DUELRANKING_WINDOWLINENUM, fdid,
								CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX));
		}else if( select == WINDOW_BUTTONTYPE_OK ) {
			if( strlen( data) != 0 ) {
				int count;
				count = atoi( data);
				if( count < 1 ) count = 1;
				saacproto_DBGetEntryByCount_send( acfd, 
												DB_DUELPOINT, 
												count-1,
									NPC_DUELRANKING_WINDOWLINENUM, fdid,
									CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX));
			}
		}
		break;
	}
}
Пример #16
0
void NPC_TimeManTalked( int meindex , int talkerindex , char *msg ,int color )
{
	char	argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	char token[512];
	char buf[512];
	int tokennum=0;
	int i;


	if(NPC_Util_isFaceToFace( meindex ,talkerindex ,2)==FALSE){
		if( NPC_Util_CharDistance( talkerindex ,meindex ) > 1) return;
	}

	if(CHAR_getInt(meindex,CHAR_BASEIMAGENUMBER)==9999){
		/*--壅尹化中月乒□玉--*/
		return;
	}

	if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr))==NULL){
		print("GetArgStrErr");	
		return;
	}
	

	if( CHAR_getInt(talkerindex,CHAR_WHICHTYPE) != CHAR_TYPEPLAYER )return;
	
	if( NPC_Util_charIsInFrontOfChar( talkerindex, meindex, 3 ) ==FALSE) return;




	if(CHAR_getWorkInt(meindex,E_INT_MODE)==0){
		/*--丢永本□斥毛忒允 */
		NPC_Util_GetStrFromStrWithDelim(argstr,"main_msg",buf,sizeof( buf) );
 	
 	}else{
		NPC_Util_GetStrFromStrWithDelim(argstr,"change_msg",buf,sizeof( buf) );
 	}

   	tokennum = 1;
   	/* 戊件穴匹嗉濠日木凶玄□弁件互窒仇丐月井醒尹月 */
	 for( i=0;buf[i]!='\0';i++ ){
          if( buf[i] == ',' ) tokennum++;
     }
 
    getStringFromIndexWithDelim( buf,",", rand()%tokennum+1,token, sizeof(token));
	/*--仄扎屯月--*/
	CHAR_talkToCli( talkerindex, meindex, token, CHAR_COLORWHITE );


}
/************************************************
 * Ïä·¤«¤±¤é¤ì¤¿»þ¤Î½èÍý
 ************************************************/
void NPC_RankingTalked( int meindex , int talkerindex , char *msg ,
							 int color )
{
	/* ¥×¥ì¥¤¥ä¡¼¤¬¥É¥¢¥Þ¥ó¤Î1¥°¥ê¥Ã¥É°ÊÆâ¤Ê¤éÈ¿±þ¤¹¤ë¡£ */
	if(NPC_Util_CharDistance( talkerindex, meindex ) > 1)return;
	
	CHAR_talkToCli( talkerindex, meindex,
					NPC_ROOMADMINNEW_MSG_RANKING_INFO, 
					NPC_RANKING_MSGCOLOR);
	
	NPC_RoomAdminNew_ReadScoreFile( meindex, talkerindex, 
						CHAR_getWorkChar( meindex, CHAR_WORKCHAR_ADMNAME));
	
}
Пример #18
0
/*********************************
* ¸«¤é¤ì¤¿»þ¤Î½è  
*********************************/
void NPC_SignBoardLooked( int meindex , int lookedindex)
{

    /* ¥×¥ì¥¤¥ä¡¼¤ËÂФ·¤Æ¤À¤±  ±þ¤¹¤ë */
    if( CHAR_getInt( lookedindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }

	/* £±¥°¥ê¥Ã¥É°Ê  ¤Î¤ß */
	if( NPC_Util_CharDistance( lookedindex, meindex ) > 1) return;


	NPC_SignBoard_Window( meindex, lookedindex,0,-1);

}
Пример #19
0
/*********************************
* έÈÕľÐ×Áݼ°ÖÊ  
*********************************/
void NPC_PetShopLooked( int meindex , int lookedindex)
{
    /* ÃóÒÁÄÌØÀ¡õ±å¸²ØÆ»¯·ÖØê  É±ÔÊÔ */
    if( CHAR_getInt( lookedindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }

	/* ¨àºëØøÓÀÓñ¶¯  ¼°ÐÄ */
	if( NPC_Util_CharDistance( lookedindex, meindex ) > 2) return;

	/*--·¥¡õÛͼ°âÙÓå¼À--*/
//	CHAR_setWorkInt(lookedindex,CHAR_WORKSHOPRELEVANT,0);


//	NPC_PetShop_selectWindow( meindex, lookedindex,0,-1);

}
Пример #20
0
/*********************************
*   �ƾ�����ľ���ݼ���  
*********************************/
void NPC_JankenTalked( int meindex , int talkerindex , char *szMes ,
					 int color )
{
	/* �����������帲�ƻ�����  ɱ���� */
	if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
		return;
	}
	
	/* ���������  ���� */
	if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;

	NPC_Janken_selectWindow(meindex, talkerindex, 0);

	
	

}
Пример #21
0
void NPC_QuizTalked( int meindex , int talkerindex , char *szMes ,
					 int color )
{
	if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
		return;
	}
	if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;

	if(NPC_QUIZPARTY_CHAECK(meindex,talkerindex)==FALSE){
		NPC_Quiz_selectWindow( meindex, talkerindex, 4);
	
	}
	if(NPC_QuizItemFullCheck(meindex, talkerindex) == FALSE){
		NPC_Quiz_selectWindow( meindex, talkerindex, 3);
	}else{
		NPC_Quiz_selectWindow( meindex, talkerindex, 0);
	}
}
Пример #22
0
/*********************************
*   �ƾ�����ľ���ݼ���
*********************************/
void NPC_FMPKManTalked( int meindex , int talkerindex , char *szMes ,int color )
{
    /* �����������帲�ƻ�����  ɱ���� */
    if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
        return;
    }

    /*--  �������¾���������--*/
    if(NPC_Util_isFaceToFace(talkerindex,meindex,2 )==FALSE) {
        /* ���������  ���� */
        if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;
    }

    /*--�����ͼ������--*/
    CHAR_setWorkInt(talkerindex, CHAR_WORKSHOPRELEVANT, 0);

    /*-��Ԫ������      --*/
    NPC_FMPKMan_selectWindow( meindex, talkerindex, 0, -1);
}
Пример #23
0
/*********************************
*   Øƾ®ØêÈÕľÐ×Áݼ°ÖÊ  
*********************************/
void NPC_FMPKManTalked( int meindex , int talkerindex , char *szMes ,int color )
{
    /* ÃóÒÁÄÌØÀ¡õ±å¸²ØÆ»¯·ÖØê  É±ÔÊÔ */
    if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }
	
	/*--  ¼°ó¡±åÖÐÔ¾®Éýµ¤¾®£¢--*/
	if(NPC_Util_isFaceToFace(talkerindex,meindex,2 )==FALSE){
		/* ¨àºëØøÓÀÓñ¶¯  ¼°ÐÄ */
		if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;
	}

	/*--·¥¡õÛͼ°âÙÓå¼À--*/
	CHAR_setWorkInt(talkerindex, CHAR_WORKSHOPRELEVANT, 0);

	/*-·´Ôª»§¼°¼»      --*/
	NPC_FMPKMan_selectWindow( meindex, talkerindex, 0, -1);
}
Пример #24
0
/*********************************
*   仄井仃日木凶凛及质
*********************************/
void NPC_FMPKManTalked( int meindex , int talkerindex , char *szMes ,int color )
{
    /* 皿伊奶乩□卞覆仄化分仃  杀允月 */
    if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
        return;
    }

    /*--  及蟆卞中月井升丹井"--*/
    if(NPC_Util_isFaceToFace(talkerindex,meindex,2 )==FALSE) {
        /* ㄠ弘伉永玉动  及心 */
        if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;
    }

    /*--伐□弁及赓渝祭--*/
    CHAR_setWorkInt(talkerindex, CHAR_WORKSHOPRELEVANT, 0);

    /*-反元户及蓟      --*/
    NPC_FMPKMan_selectWindow( meindex, talkerindex, 0, -1);
}
Пример #25
0
/*********************************
* Ïä·¤«¤±¤é¤ì¤¿»þ¤Î½èÍý
*********************************/
void NPC_FMPKManTalked( int meindex , int talkerindex , char *szMes ,int color )
{
    /* ¥×¥ì¥¤¥ä¡¼¤ËÂФ·¤Æ¤À¤±È¿±þ¤¹¤ë */
    if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
    	return;
    }
	
	/*--ÌܤÎÁ°¤Ë¤¤¤ë¤«¤É¤¦¤«¡©--*/
	if(NPC_Util_isFaceToFace(talkerindex,meindex,2 )==FALSE){
		/* £±¥°¥ê¥Ã¥É°ÊÆâ¤Î¤ß */
		if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;
	}

	/*--¥ï¡¼¥¯¤Î½é´ü²½--*/
	CHAR_setWorkInt(talkerindex, CHAR_WORKSHOPRELEVANT, 0);

	/*-¤Ï¤¸¤á¤ÎÁªÂò²èÌÌ--*/
	NPC_FMPKMan_selectWindow( meindex, talkerindex, 0, -1);
}
Пример #26
0
/*-----------------------------------------
弁仿奶失件玄井日忒匀化五凶凛卞裟太请今木月[
-------------------------------------------*/
void NPC_CharmWindowTalked( int meindex, int talkerindex, 
								int seqno, int select, char *data)
{
	if( NPC_Util_CharDistance( talkerindex, meindex ) > 2) return;

	switch( seqno){
	  case CHAR_WINDOWTYPE_CHARM_START:
	  	if(atoi( data) == 2) {
			NPC_Charm_selectWindow( meindex, talkerindex, 1 );
		}
		break;

	  case CHAR_WINDOWTYPE_CHARM_END:
	  	if(select == WINDOW_BUTTONTYPE_YES) {
			NPC_Charm_selectWindow( meindex, talkerindex, 2 );
		}
		break;
	}
	
}
Пример #27
0
/*********************************
* ��ū����������������帲������  
*********************************/
void NPC_JankenWindowTalked( int meindex, int talkerindex, 
								int seqno, int select, char *data)
{
	/* ���������  ���� */
	if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;

	switch( seqno){
	  case CHAR_WINDOWTYPE_JANKEN_START:
	
	  	if(select==WINDOW_BUTTONTYPE_YES){
			NPC_Janken_selectWindow(meindex, talkerindex, 1);
		}
		break;	
	
	case CHAR_WINDOWTYPE_JANKEN_MAIN:
		if (atoi(data) >= 3){
			NPC_JnakenJudge(meindex,talkerindex,atoi(data) );
		}
		break;
	}
}
Пример #28
0
void NPC_DoorTalked( int meindex , int talkerindex , char *msg , int color )
{
    char *m = CHAR_getWorkChar( meindex , CHAR_WORKDOORPASSWD );
    if(NPC_Util_CharDistance( talkerindex, meindex ) > 1)return;
    if( CHAR_getWorkInt( meindex , CHAR_WORKDOORPASSFLG ) != 1 ){
        return;
    }
    if( CHAR_getWorkInt( meindex , CHAR_WORKDOORPASSFLG ) >= 1 &&
        ((unsigned long)NowTime.tv_sec) > (unsigned long)
                CHAR_getWorkInt( meindex , CHAR_WORKDOOREXPIRETIME )){
        print( "RINGO: passdoor expired ( talked )\n" );
        return;
    }
    if( m[0] == '\0' )return;
    cutDotsTail( msg );
    if( strcmp( m , msg ) == 0 ){
        NPC_DoorFlip( meindex , talkerindex );
    }else {
        CHAR_talkToCli( talkerindex , -1 , "密码不正确啦!", CHAR_COLORWHITE );
    }
}
Пример #29
0
void NPC_DengonLooked( int meindex, int lookedindex )
{
    int maxid;
    char	buf[DENGONFILEENTRYSIZE*MESSAGEINONEWINDOW*2];
	if( NPC_Util_CharDistance( lookedindex, meindex ) > 1) return;
    maxid = CHAR_getWorkInt( meindex, CHAR_WORKDENGONMAXID );
    if( NPC_DengonReadString( meindex, maxid, NPC_sendbuf ) ){
        int fd;
        fd = getfdFromCharaIndex( lookedindex );
        if( fd == -1 )return;
        lssproto_WN_send(fd, WINDOW_MESSAGETYPE_WIDEMESSAGEANDLINEINPUT,
        					WINDOW_BUTTONTYPE_OKCANCEL|
        					WINDOW_BUTTONTYPE_PREV,
        					CHAR_WINDOWTYPE_DENGON,
							CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
							makeEscapeString( NPC_sendbuf, buf, sizeof(buf)));
        					
        CHAR_setWorkInt( lookedindex, CHAR_WORKSHOPRELEVANT, maxid);
        
    }
    
}
Пример #30
0
void NPC_WarpManWindowTalked( int meindex, int talkerindex, 
								int seqno, int select, char *data)
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE - 1024 * 20];
	char buf[NPC_UTIL_GETARGSTR_BUFSIZE - 1024 * 20];
#ifdef _NEW_WARPMAN
	BOOL checkp=TRUE;
	char buf1[1024];
	int talkNo = 1;
	BOOL tenflg=FALSE;
#else
	int fl,x,y;
#endif
	char buff2[256];
	int fd = getfdFromCharaIndex( talkerindex );
	if( NPC_Util_CharDistance( talkerindex, meindex ) > 2)
		return;
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("GetArgStrErr");
		return ;
	}
	if( CHAR_getWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT) < 1 )	{
		CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
		return;
	}

#ifdef _NEW_WARPMAN
	if( seqno == NEW_WARPMAN )    {
		int eqnum=0;
		eqnum = CHAR_getWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT);
		sprintf(buf1,"%s", "NOFREE");
		if( eqnum >= 0 )	{
			sprintf(buf1,"TALKEVENT%d", eqnum);
		}
		CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);
		while( getStringFromIndexWithDelim( npcarg,"OVER",talkNo,buf,sizeof( buf)) != FALSE){
			if( strstr(buf, buf1) != NULL)	{
				strcpy( npcarg , buf);
				tenflg = TRUE;
				break;
			}
			talkNo++;
		}
		if( tenflg == FALSE )	{
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
			return;
		}
	}else {
#endif    
		if( select != WINDOW_BUTTONTYPE_YES )	{
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
			return;
		}
		    if(NPC_PARTY_CHAECK( meindex, talkerindex) == FALSE){
			    NPC_ERR_DiSP( meindex, talkerindex, 1);
			    return;
			}
#ifdef _NEW_WARPMAN	
	}
#else
	NPC_Util_GetStrFromStrWithDelim( npcarg, "WARP", buf, sizeof( buf));
	GetRand_WarpPoint( buf, &fl, &x, &y );
#endif

#ifdef _NEW_WARPMAN	
  switch( seqno)	{
  case WARP_MAN:
	if( select != WINDOW_BUTTONTYPE_YES )
		return;
	    if( NPC_PARTY_CHAECK( meindex, talkerindex) == FALSE ){
		    NPC_ERR_DiSP( meindex, talkerindex, 1);
		    return;
		}		
#else
	if( select != WINDOW_BUTTONTYPE_YES) return;
	    if( NPC_PARTY_CHAECK( meindex, talkerindex) == FALSE)
		    return;
#endif

#ifdef _NEW_WARPMAN
  break;
  case NEW_WARPMAN:
		if( select != WINDOW_BUTTONTYPE_YES ){
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
			if( NPC_Util_GetStrFromStrWithDelim( npcarg, "CancelMsg", buff2, sizeof( buff2) ) != NULL)	{
				CHAR_talkToCli( talkerindex, meindex, buff2, CHAR_COLORYELLOW);
			}
			return;
		}
	  checkp=TRUE;
	  if( NPC_Util_GetStrFromStrWithDelim( npcarg, "CHECKPARTY", buff2, sizeof( buff2) ) != NULL)	{
		  if( strstr( buff2, "FALSE") != NULL )	{
			checkp = FALSE;
		}
	  }
	  if( checkp==TRUE && NPC_PARTY_CHAECK( meindex, talkerindex) == FALSE )	{
		      NPC_ERR_DiSP( meindex, talkerindex, 1);
		      CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
		      return;
	  }		
  break;
  case NEW_WARPMAN_END:
	  return;
  break;
  }
#endif

	if( Action_RunDoEventAction( meindex, talkerindex, npcarg) == FALSE ){
		CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
		return;
	}

		CHAR_complianceParameter( talkerindex );
		CHAR_send_P_StatusString( talkerindex ,
						CHAR_P_STRING_ATK|CHAR_P_STRING_DEF|
						CHAR_P_STRING_CHARM|CHAR_P_STRING_QUICK|
						CHAR_P_STRING_WATER|CHAR_P_STRING_FIRE|
						CHAR_P_STRING_WIND|CHAR_P_STRING_EARTH
						);
		if( CHAR_getWorkInt( CONNECT_getCharaindex(fd), CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE){
	            return ;
		}
		if(CHAR_getWorkInt( talkerindex , CHAR_WORKSHOPRELEVANTTRD) <= 0){
				CHAR_setWorkInt( talkerindex, CHAR_WORKWARPCHECK, FALSE );
#ifdef _NEW_WARPMAN	
				NPC_WarpMsg( meindex, talkerindex, npcarg);
#else
				if( fl == 0 && x == 0 && y == 0 )		{
				}else	{
					CHAR_warpToSpecificPoint(talkerindex, fl, x,y);
				}
#endif
		}else	{
			if(CHAR_getInt(talkerindex,CHAR_GOLD) <
	                  CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD)){
				NPC_ERR_DiSP( meindex, talkerindex, 2);
				return ;
			}
			CHAR_DelGold( talkerindex, CHAR_getWorkInt(talkerindex,CHAR_WORKSHOPRELEVANTTRD ));

				CHAR_setWorkInt( talkerindex, CHAR_WORKWARPCHECK, FALSE );
#ifdef _NEW_WARPMAN	
				NPC_WarpMsg( meindex, talkerindex, npcarg);
#else
				if( fl == 0 && x == 0 && y == 0 )		{
				}else	{
                        CHAR_warpToSpecificPoint(talkerindex, fl, x,y);
				}
#endif

		}
#ifdef _NEW_WARPMAN
		NPC_NpcWarpMsg( meindex, talkerindex, npcarg);
#else
	}