Esempio n. 1
0
int NPC_Util_SearchNear( int meindex, int maxlen, int type )
{
#if 1
	/* MAP 井日及伉件弁匹腹綢允月方丹卞  凳 */
    int	floor, x, y, i,iTarget = -1;
	/* 蜇箕及憤坌及樹  毛婁五請允 */
    if( !CHAR_CHECKINDEX( meindex ) )return -1;
    floor = CHAR_getInt( meindex, CHAR_FLOOR );
    x  = CHAR_getInt( meindex, CHAR_X );
    y  = CHAR_getInt( meindex, CHAR_Y );

	/*       區  匹譬屯月 */
	for( i = 0; i < maxlen; i ++ ){
		iTarget = SearchNearAround( x, y, floor, RAND( 0,3 ), i+1, type );
		if( iTarget >= 0 )break;
	}
	return iTarget;


#else
	/* 仇切日反衙中支曰   */
    int	floor, x, y, i,iTarget = -1, iLen, iMin = 655360, tX, tY;
    /*   醒必永玄*/
    if( !CHAR_CHECKINDEX( meindex ) )return -1;
    floor = CHAR_getInt( meindex, CHAR_FLOOR );
    x  = CHAR_getInt( meindex, CHAR_X );
    y  = CHAR_getInt( meindex, CHAR_Y );

    /*  腹綢 */
    for( i = 0 ; i<objnum ; i++ ){
        /*平乓仿弁正□及凜*/
        if( obj[i].type != OBJTYPE_CHARA ) continue;
		/* 潘  毛葦月*/
        if( CHAR_getInt( obj[i].index,CHAR_WHICHTYPE)
            != type ) continue;
		/*   元白夫失及凜*/
	    if( floor != obj[i].floor ) continue;

	    /* CHAR_TYPEENEMY 及凜反index互憤坌及樺寧互丐月及匹民尼永弁允月 */
        if( obj[i].index == meindex ) continue;

		/*     及覃  毛煌遙*/
		tX = ABS( x-CHAR_getInt(obj[i].index,CHAR_X) );
		tY = ABS( y-CHAR_getInt(obj[i].index,CHAR_Y) );
		if( tX > maxlen )continue;	/*   木允亢*/
		if( tY > maxlen )continue;	/* 卅日戚尺*/

        /* 稱井中覃  毛煌遙*/
		iLen = tX*tX+tY*tY;
		/* 域  嗤井勻凶樺寧反筏  凳蕙*/
		if( iMin > iLen ){
			iMin = iLen;
			iTarget = obj[i].index;	/* 奶件犯永弁旦毛瓚  */
		}
	}

	return iTarget;
#endif
}
Esempio n. 2
0
int NPC_Util_SearchNear(int meindex, int maxlen, int type)
{
#if 1
	int floor, x, y, i, iTarget = -1;
	if (!CHAR_CHECKINDEX(meindex))
		return -1;
	floor = CHAR_getInt(meindex, CHAR_FLOOR);
	x = CHAR_getInt(meindex, CHAR_X);
	y = CHAR_getInt(meindex, CHAR_Y);

	for (i = 0; i < maxlen; i++) {
		iTarget =
		    SearchNearAround(x, y, floor, RAND(0, 3), i + 1, type);
		if (iTarget >= 0)
			break;
	}
	return iTarget;

#else
	int floor, x, y, i, iTarget = -1, iLen, iMin = 655360, tX, tY;
	if (!CHAR_CHECKINDEX(meindex))
		return -1;
	floor = CHAR_getInt(meindex, CHAR_FLOOR);
	x = CHAR_getInt(meindex, CHAR_X);
	y = CHAR_getInt(meindex, CHAR_Y);

	/*  腹绸 */
	for (i = 0; i < objnum; i++) {
		/*平乓仿弁正□及凛 */
		if (obj[i].type != OBJTYPE_CHARA)
			continue;
		if (CHAR_getInt(obj[i].index, CHAR_WHICHTYPE)
		    != type)
			continue;
		if (floor != obj[i].floor)
			continue;

		/* CHAR_TYPEENEMY 及凛反index互愤坌及桦宁互丐月及匹民尼永弁允月 */
		if (obj[i].index == meindex)
			continue;

		tX = ABS(x - CHAR_getInt(obj[i].index, CHAR_X));
		tY = ABS(y - CHAR_getInt(obj[i].index, CHAR_Y));
		if (tX > maxlen)
			continue;	/* 峊木允亢 */
		if (tY > maxlen)
			continue;	/* 卅日戚尺 */

		iLen = tX * tX + tY * tY;
		if (iMin > iLen) {
			iMin = iLen;
			iTarget = obj[i].index;	/* 奶件犯永弁旦毛瓒狤 */
		}
	}

	return iTarget;
#endif
}
Esempio n. 3
0
int NPC_Util_SearchNear( int meindex, int maxlen, int type )
{
#if 1
    int	floor, x, y, i,iTarget = -1;
    if( !CHAR_CHECKINDEX( meindex ) )return -1;
    floor = CHAR_getInt( meindex, CHAR_FLOOR );
    x  = CHAR_getInt( meindex, CHAR_X );
    y  = CHAR_getInt( meindex, CHAR_Y );

	for( i = 0; i < maxlen; i ++ ){
		iTarget = SearchNearAround( x, y, floor, RAND( 0,3 ), i+1, type );
		if( iTarget >= 0 )break;
	}
	return iTarget;


#else
    int	floor, x, y, i,iTarget = -1, iLen, iMin = 655360, tX, tY;
    if( !CHAR_CHECKINDEX( meindex ) )return -1;
    floor = CHAR_getInt( meindex, CHAR_FLOOR );
    x  = CHAR_getInt( meindex, CHAR_X );
    y  = CHAR_getInt( meindex, CHAR_Y );

    /*  ���� */
    for( i = 0 ; i<objnum ; i++ ){
        /*ƽ�ҷ�����������*/
        if( obj[i].type != OBJTYPE_CHARA ) continue;
        if( CHAR_getInt( obj[i].index,CHAR_WHICHTYPE)
            != type ) continue;
	    if( floor != obj[i].floor ) continue;

	    /* CHAR_TYPEENEMY ���ݷ�index�����м�������ؤ�¼�ƥ������������ */
        if( obj[i].index == meindex ) continue;

		tX = ABS( x-CHAR_getInt(obj[i].index,CHAR_X) );
		tY = ABS( y-CHAR_getInt(obj[i].index,CHAR_Y) );
		if( tX > maxlen )continue;	/* �Tľ�ʿ�*/
		if( tY > maxlen )continue;	/* ئ���ݳ�*/

		iLen = tX*tX+tY*tY;
		if( iMin > iLen ){
			iMin = iLen;
			iTarget = obj[i].index;	/* �̼������͵�ë趪E*/
		}
	}

	return iTarget;
#endif
}