本帖最后由 zczczcle 于 2016-2-1 12:51 编辑
' c6 n4 x" u7 P6 l1 }5 d$ r
7 G$ G( l# |' S# x首先,这并不能预测下一个boss具体刷在哪,不过你能通过我的解读知道,boss是怎么个刷法。
6 @- s) C8 L0 a其次,如果你有挂(付费的每天更新的那种),或者自己会解封包的话,你就能知道附近是否出现小boss了,在附近的话你还能知道他的位置。
0 V- |* `, B" o) z1 H; nkuqitt 这位大哥提到打开MonsterList文件第一个数字是0是乱刷,但是后来又不确定很疑惑,原因就在于那个0,1,2,3,4和乱刷与否并无关系,或许是凑巧。0 P x2 W* m! P$ G ~& y% i
& i1 q8 ?5 G3 k部分选取代码,稍后解读:
* Y; a2 n' c, C% ? WORD wNowTeamId = 0;
$ l. {$ y5 l) |! V0 X* J( p' X7 n$ t' }/ F4 y1 j
_snprintf( szFileName, 256-1, "%s//Monster//MonsterList",g_pBase->GetObjectFilePath() );) x1 G, `0 \, K) ]; [4 }; v
szFileName[256-1] = '\0';; Z4 w8 B. _$ d% g! M. @( Z8 ^) N# _
_snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "_%d.txt", (int)m_pBase->GetMapId() ); 7 P: l6 U* C& x1 Y! @
szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';
% ~3 B$ N0 w& b2 G' P* R7 I$ E3 [9 @ strcat( szFileName, szMapLog );
0 n( ~( e% Y( _2 ]: W: w4 A CInStream MonsterInfo( szFileName );
+ o! M2 [5 @$ ]6 y9 p. n$ v; B if ( MonsterInfo.fail() || MonsterInfo.GetFileSize() == 0 ) 6 \, }. b* W( ?8 Q) Q
{6 m/ q- k2 y# \/ L5 u5 [
_snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "***** The Map(%d) Have No Monsters ! *****", GetMapId() );1 m$ y. P2 \! h U. B8 i8 ~1 m
szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';
) S* Q9 o8 Q& R* u AddMemoMsg(szMapLog);
! v( ?) { ?" t7 s) } return true;/ c0 v/ `3 x3 T" B z7 L
' b- D4 n! g( t8 p
+ [* p: |! j- b8 @4 M& ?: h1 b2 ]( d, L( `0 e
for( i = 0; i < iColNum; i++ )
4 C C7 N( [8 R+ R9 j- g7 | {2 E/ a, N1 v" l0 P+ v# @) T
MonsterInfo >> dwTeamId ) a6 u( Q9 ^9 h
>> dwMonsterId
X' k4 ]& ~$ ]: ^4 ` >> dwX
0 E* a* u4 Q, U# J >> dwY
/ c% O0 a' n1 F% n4 S+ q1 w >> dwCount;
3 |( e! d1 v% `, C8 G8 s if( wNowTeamId < dwTeamId )& N9 V, M, w1 ^8 D
{# X& {% |/ E+ O `
wNowTeamId = dwTeamId;
3 ]- T4 Z2 h( `' H" c }" v' ^; W" _( X$ Q+ _ g
; b4 Z) W4 A5 `1 B: Y) p3 i, i& N
1 y- q% e s$ i' |( T' e/ M" g
' w+ B9 ?. H+ z
for( j = 0; j < dwCount; j++ )
( x) n! G& ]2 I4 ]; `3 Q& P {
, P& v6 o9 Y" l2 o$ l if( pBaseMonster->GetSpeed() )
9 }& N4 W r0 \( W5 U {/ I% `" O3 T. `3 M0 @# R
for( int z = 0; z < 10; z++ )2 `; K9 M7 P% V" H2 W
{0 l: v4 @; m5 c' Z/ \8 j- \
dwRandX = gf_GetRandom( 14 ) - gf_GetRandom( 14 );% O+ g' r4 j! H) Y$ j: b" N
dwRandY = gf_GetRandom( 14 ) - gf_GetRandom( 14 );
) l$ D. c2 F, e% I% @ if( !( GetTileFlag( dwX + dwRandX, dwY + dwRandY ) & TILE_ALLOCCULDE ) ) break;
: X& T, O7 K: w7 q; M$ p2 Z else if( z == 9 )
) l8 O, P) d) `3 A9 @ {7 E9 e) C/ U @* g7 U9 ?
dwRandX = -1 + gf_GetRandom( 2 );
- v/ I* c3 K% F4 l- q# e e dwRandY = -1 + gf_GetRandom( 2 );6 |1 I( M7 Q+ N3 G2 C; X+ n9 N" _
}% K( |% f" J& U9 m( |* n; f; l* g
}, Y' P- m0 Q( b9 s1 q+ ~
}
0 i. K2 j$ A/ }7 s8 u9 ~ else, j+ l' ~* K3 K1 ?8 Q$ i s7 y# s
{
5 d# c7 ]/ C2 S+ m7 J; |% U dwRandX = dwRandY = 0;
- y a& ]5 }! s& U4 Y% a }4 f t( V$ s) l' U: ~1 d
8 `, E) b0 y! U5 k3 }0 q- L$ p. R8 k0 b" g
, ?$ z3 ]6 n( [" }0 S所以我的初步结论是:; g8 O1 Z* |( a# p9 s3 i
. a; M6 s$ M5 S, p
|