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 }
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 }
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 }