本帖最后由 zczczcle 于 2016-2-1 12:51 编辑 ( r& z6 M* q. K+ D8 i4 O. q7 l* J
# `6 r( c% d6 Z+ V$ u首先,这并不能预测下一个boss具体刷在哪,不过你能通过我的解读知道,boss是怎么个刷法。
& W, W8 {* r8 U1 i& ?1 s其次,如果你有挂(付费的每天更新的那种),或者自己会解封包的话,你就能知道附近是否出现小boss了,在附近的话你还能知道他的位置。4 X2 i7 O! ?. C3 k- c9 x/ j9 ^0 v
kuqitt 这位大哥提到打开MonsterList文件第一个数字是0是乱刷,但是后来又不确定很疑惑,原因就在于那个0,1,2,3,4和乱刷与否并无关系,或许是凑巧。
3 S# E/ f/ n. o5 d. k5 P
( Q0 J* T U1 ~部分选取代码,稍后解读:* D0 T1 k9 e: T/ T9 z
WORD wNowTeamId = 0;- M1 B2 k) m: M( f7 p
: q; o/ J) L$ S8 {+ l7 O; |. o
_snprintf( szFileName, 256-1, "%s//Monster//MonsterList",g_pBase->GetObjectFilePath() );+ ^- R% y+ I) E4 x) c- d; j: I7 u
szFileName[256-1] = '\0';' j: E: o L+ K0 T& m
_snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "_%d.txt", (int)m_pBase->GetMapId() ); 4 E7 j6 H, h; @! Z
szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';3 m& j! z7 v+ T/ E6 s7 v: ~8 w0 h
strcat( szFileName, szMapLog );
' @: ~; Q7 \7 x: I5 `6 g CInStream MonsterInfo( szFileName );
4 {% O! n* Q1 x1 a w5 D if ( MonsterInfo.fail() || MonsterInfo.GetFileSize() == 0 ) 4 T1 S0 T L U( J4 N
{& Y' }( w! o" j* X
_snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "***** The Map(%d) Have No Monsters ! *****", GetMapId() );7 G& M* a! G8 @
szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';9 ~! A6 L2 Q, P5 ~" @4 q7 }3 T4 z
AddMemoMsg(szMapLog);
) L( M+ h7 A- T4 w4 ]7 \( Z1 l* u return true;
; P. t. i( C4 T M' ~! R6 Q, @
9 X( |7 `+ F( ?2 _( ?" P4 @
/ R V( ^. a! Z- M8 o% |+ c- Bfor( i = 0; i < iColNum; i++ )
h8 {& X [! s @& l7 }, T {. y8 z# K0 l5 \
MonsterInfo >> dwTeamId
8 E5 P4 B/ e' `/ C/ L' r >> dwMonsterId
) E* Y% f& L* k9 V0 D8 Z >> dwX 1 o! w8 w% h$ `% `/ L
>> dwY
' T- j# c5 _; u! n/ ~ >> dwCount;
) m2 e6 Y. f) o if( wNowTeamId < dwTeamId )
! w. F2 y* C: U0 `7 C {, M9 E/ X9 R; S' A6 ]
wNowTeamId = dwTeamId;0 F0 d* ?: H2 L. w& X+ z# ?
}
. `2 j) P3 \6 Q
& J! e1 P! S6 g$ P' t* \) H; T3 O6 a5 G7 ^% r0 l* v$ I
: G% h' {! V) `' k for( j = 0; j < dwCount; j++ )4 b- N: p1 x7 A
{
+ Z/ p" m% s r- Z3 r0 d6 W& s6 b if( pBaseMonster->GetSpeed() )5 T5 ^5 X9 R( p- O. I+ M- x
{" r9 F& r7 K& W% x
for( int z = 0; z < 10; z++ )
+ I3 R/ c" N1 _2 @/ n {: p* Q! h3 G. O' _4 e. {4 W
dwRandX = gf_GetRandom( 14 ) - gf_GetRandom( 14 );
X* M. w" s; B; D4 O: O! I dwRandY = gf_GetRandom( 14 ) - gf_GetRandom( 14 );
9 m& n1 Y3 ~, n6 E2 n% N+ ?! n if( !( GetTileFlag( dwX + dwRandX, dwY + dwRandY ) & TILE_ALLOCCULDE ) ) break;
' z" h% m4 G, ~( ~' c' F else if( z == 9 )
! k1 B( A1 n9 t) N' W4 _4 ]9 P; S {* j/ l( d% Z4 D3 n( e4 u9 O5 C* k
dwRandX = -1 + gf_GetRandom( 2 );
J3 j0 e# f1 G& x! b dwRandY = -1 + gf_GetRandom( 2 );6 k+ ]) g& M; _( W1 [! ?
}7 Q' {% [- g% s6 M; `# }. P8 z, `3 c
}1 a! i) a# N* h8 Q& `; R
}6 \: o( b3 M! P% `( z! ^- g
else( j$ H9 F$ G7 r: x, D
{
) Y6 R, u' r' C; q& R0 [ dwRandX = dwRandY = 0;
* M& R1 q8 H2 }+ d% X }6 `5 C* z) b1 |1 l' _! H2 x
( O. o, s f6 L! B
% c& n. i6 q8 ` B- Z) y( s; Z8 P$ ?8 B8 X) i0 g, F. v
所以我的初步结论是:! P4 d E" H' P# L. q
; ]& K7 e* q" C b8 M
|