本帖最后由 zczczcle 于 2016-2-1 12:51 编辑 4 l$ t# T% L5 o& R' F: j3 F# o
7 }: F8 D0 B0 q
首先,这并不能预测下一个boss具体刷在哪,不过你能通过我的解读知道,boss是怎么个刷法。6 n3 N$ f$ m/ B+ d
其次,如果你有挂(付费的每天更新的那种),或者自己会解封包的话,你就能知道附近是否出现小boss了,在附近的话你还能知道他的位置。
) v! Y. n6 w+ J: X. Wkuqitt 这位大哥提到打开MonsterList文件第一个数字是0是乱刷,但是后来又不确定很疑惑,原因就在于那个0,1,2,3,4和乱刷与否并无关系,或许是凑巧。$ o' a" S/ d/ P
7 [& l8 Z4 w0 n! F6 G7 }2 W
部分选取代码,稍后解读:( {$ ?( D3 U; v! Z. p
WORD wNowTeamId = 0;: L A# ]7 i8 g4 D7 Y
' ^! r4 _/ M, I1 x( ~' k: q
_snprintf( szFileName, 256-1, "%s//Monster//MonsterList",g_pBase->GetObjectFilePath() );
7 X* a- f5 o- f `* _: Q1 W szFileName[256-1] = '\0';, c- T5 l/ ?" H3 E) X
_snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "_%d.txt", (int)m_pBase->GetMapId() ); ! d- E' M! I: D* e! N; X. I* M
szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';
" J q* q0 [' n strcat( szFileName, szMapLog );
4 X/ \8 j& M0 l7 x CInStream MonsterInfo( szFileName ); ( R* z7 Y+ d- u$ E' Y3 B' z% I- G
if ( MonsterInfo.fail() || MonsterInfo.GetFileSize() == 0 )
" D! ` q4 r/ |: C5 x {
( l$ |- a) T8 c: W3 N# [ _snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "***** The Map(%d) Have No Monsters ! *****", GetMapId() );( k( K* ^/ X, e* J& W1 n2 F; I
szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';. } K- |: K% g8 Y; w! V
AddMemoMsg(szMapLog);& w/ F4 ]; p6 A% s9 c8 m, l
return true;
' Y$ w) r% m& a9 o5 f% o/ G2 P. R D1 z( ^$ v; K
8 O8 x. t& H9 U6 t. i
6 A; X0 N0 o# M$ vfor( i = 0; i < iColNum; i++ )% y- A6 i. x1 c( K3 q
{
. p" `5 O8 w7 L ^# G MonsterInfo >> dwTeamId
) d- |, k( W$ Q3 u >> dwMonsterId
: U* N/ N) S% w, n3 H, `& h$ t >> dwX
' |3 S. f- L9 E >> dwY
8 M# Y7 ]" X. ?' e5 J T8 k >> dwCount;
2 K) }4 E9 G% _: s if( wNowTeamId < dwTeamId )% w6 r: J& {; @. ?5 E. L
{
1 v7 y5 R C& q wNowTeamId = dwTeamId;* Q8 m7 s& H3 h* _
}7 u( O0 A& @4 j/ }% j2 T5 X& }1 H! E
8 Z. s/ P* ^! O _9 o3 l. E0 i1 _* g. m( h9 Q8 _! q
4 m/ X3 y7 C2 a5 I/ Z for( j = 0; j < dwCount; j++ ); y% q; r! }. m9 j" J8 R) @7 b
{
' C ?7 R# U! \ W) C, c p if( pBaseMonster->GetSpeed() )
1 D4 r, L0 x, x {
: ?' v7 a/ u: x+ ]1 Q for( int z = 0; z < 10; z++ )
/ _# d7 c8 N( _& q" {! \' M {
" T2 i) v- {/ g* C. {. M dwRandX = gf_GetRandom( 14 ) - gf_GetRandom( 14 );! o, V X/ ~6 v$ s6 [% L
dwRandY = gf_GetRandom( 14 ) - gf_GetRandom( 14 );: w& y" x1 ^9 N+ }1 I4 V
if( !( GetTileFlag( dwX + dwRandX, dwY + dwRandY ) & TILE_ALLOCCULDE ) ) break;6 |5 n0 I- @% O9 x: v$ C
else if( z == 9 )3 ~/ r W! c: C
{
6 u2 v" D C$ m dwRandX = -1 + gf_GetRandom( 2 );5 R. y/ V( ?: |5 J
dwRandY = -1 + gf_GetRandom( 2 );% t0 w7 m2 ~) f$ l/ I
}
7 R# g7 _9 {" e" k: ^; _/ f4 E }+ H% W" M% ]+ X! c# W# U
}
) z4 K1 p( w% d8 ~' T0 J Q2 @ else: D" v5 h% ~( _; x+ C
{
# h0 ?0 H& i% h% ~& c) V dwRandX = dwRandY = 0;
, y* L+ X! r1 r" f' R }
4 z9 v% J7 p; R3 f& V
4 M' x' s, H4 S; a1 B
9 t8 P: A- V8 s# Q. L# L F2 l) a8 r/ M
所以我的初步结论是:
3 Y7 [ l- f1 x) |$ ]9 X% _: v( V, q& n1 c- b( w$ e; h1 M
|