本帖最后由 zczczcle 于 2016-2-1 12:51 编辑 $ h* X! H) B8 j. t& I
9 P; e' y1 D o" G1 d首先,这并不能预测下一个boss具体刷在哪,不过你能通过我的解读知道,boss是怎么个刷法。
5 W+ g1 U, A1 ^; U% U其次,如果你有挂(付费的每天更新的那种),或者自己会解封包的话,你就能知道附近是否出现小boss了,在附近的话你还能知道他的位置。0 _/ @( |$ b* P8 @7 c
kuqitt 这位大哥提到打开MonsterList文件第一个数字是0是乱刷,但是后来又不确定很疑惑,原因就在于那个0,1,2,3,4和乱刷与否并无关系,或许是凑巧。
& W A) ~& p4 L* S2 S! C" U6 s- R( M0 Y; e
部分选取代码,稍后解读:* P: c/ j0 T5 |& N2 j
WORD wNowTeamId = 0;
$ b. s N" }, x* y) I. h, @# ?* E7 ]1 r7 z$ {; v
_snprintf( szFileName, 256-1, "%s//Monster//MonsterList",g_pBase->GetObjectFilePath() );* O: ~/ T. L) W( D/ t% ~+ y
szFileName[256-1] = '\0';# [4 V7 E1 A4 @) U" [
_snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "_%d.txt", (int)m_pBase->GetMapId() ); + J M+ d! Z* T
szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';
) I+ `0 w0 n. y9 {0 { strcat( szFileName, szMapLog );
. s$ r7 i1 U: J& z5 x9 i! `/ S CInStream MonsterInfo( szFileName );
$ }2 [4 J2 G( i3 o, { if ( MonsterInfo.fail() || MonsterInfo.GetFileSize() == 0 )
$ q; K' I, M" c3 Q& b {
/ `2 d9 ^0 t) x( ^8 [, _# x. L _snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "***** The Map(%d) Have No Monsters ! *****", GetMapId() );
1 A9 ~: \+ L% A5 D szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';
0 ^- V; I/ I+ T5 V. l AddMemoMsg(szMapLog);) B, G$ j* {5 [: a# R
return true;
: x8 _ V5 D( O( x0 a1 j) j8 o% b( R# }
& H% n7 ]# q9 B: d: s. ]4 k& I2 J i% c
for( i = 0; i < iColNum; i++ )7 p2 c0 U5 V7 P5 |9 E9 n, s
{
( J4 ~$ I) X8 Y MonsterInfo >> dwTeamId / U/ V% Q! }$ E9 M0 X
>> dwMonsterId
6 r& P1 z/ @6 T v% @& y* Q& W >> dwX # k4 N! B2 A/ Z- x+ u
>> dwY 2 X9 |5 ?6 C! l) q9 v6 |4 N" f2 F
>> dwCount;
' `" T- w$ d/ M' `% m if( wNowTeamId < dwTeamId ), d6 T( q3 J+ k: K0 o: O
{
, m! J7 K9 K( Q" V4 n wNowTeamId = dwTeamId;( M* ~/ `. j8 H$ @# N J2 m
}
5 \! ?3 H; Y+ r! S( x
5 D! T& R4 @5 y5 p6 z9 _
1 H: z, E" \( f* w& N. L" [1 v3 r
! [/ y7 s5 v% c4 K& M: r6 i2 B+ k for( j = 0; j < dwCount; j++ )
( q( a, K5 |: E- W' U6 Y6 ] {& l6 R% \+ {' T% V( K
if( pBaseMonster->GetSpeed() )% ?4 m4 q4 S8 c1 \5 w8 c; u
{
* |% ?0 q$ b G7 u! J3 H for( int z = 0; z < 10; z++ )8 o+ e! I k; e4 Y5 H, Y, z [& i8 `
{* B( ~( y' R* b* B0 ~
dwRandX = gf_GetRandom( 14 ) - gf_GetRandom( 14 );
8 N# O N: o9 M5 Q dwRandY = gf_GetRandom( 14 ) - gf_GetRandom( 14 );, Q" @9 x+ M* z$ Y |% `4 `
if( !( GetTileFlag( dwX + dwRandX, dwY + dwRandY ) & TILE_ALLOCCULDE ) ) break;) Q1 s" R$ p4 K) q \* y; z# m
else if( z == 9 )8 ~. Z5 K* P* h" C$ r( x0 [2 Q* ?
{. i- X, P- I. Z% n# [
dwRandX = -1 + gf_GetRandom( 2 );4 }; p0 t* r% A) c% _7 X6 r( T
dwRandY = -1 + gf_GetRandom( 2 );
0 C$ `" s6 S% g+ Q; w* v. }+ Z }
) Y+ ?) r4 [ K7 \' H: N }
- X, O% I- j) _, [ }
% f O+ b. ~) X- e, g3 V else
) |( M& R' k; R, N# B3 Y% Z {
$ ]1 e5 }5 U3 k- U( F- M dwRandX = dwRandY = 0;9 G$ Z$ Y5 f" y; k& e
}
& r1 d. w1 z8 V5 @, S- W2 n$ c( p
- v( I; S7 q+ {* L" \( E, t
4 C H( z# I1 [, ?) C# E; F所以我的初步结论是:; s; o# p: I+ @+ O+ {7 u
4 _: m6 k K0 ~0 C# a |