本帖最后由 zczczcle 于 2016-2-1 12:51 编辑 + m* z. v ` V
( M* d2 A- c8 `) c
首先,这并不能预测下一个boss具体刷在哪,不过你能通过我的解读知道,boss是怎么个刷法。, a4 p9 R) x0 x) ]: C
其次,如果你有挂(付费的每天更新的那种),或者自己会解封包的话,你就能知道附近是否出现小boss了,在附近的话你还能知道他的位置。
4 z1 s7 n* u' v4 h; u) okuqitt 这位大哥提到打开MonsterList文件第一个数字是0是乱刷,但是后来又不确定很疑惑,原因就在于那个0,1,2,3,4和乱刷与否并无关系,或许是凑巧。
. a( s: n1 u: u9 ^) Q N) @3 `5 D# w$ O5 z8 z
部分选取代码,稍后解读:
. B7 D( f4 k9 L/ N, l0 j WORD wNowTeamId = 0;
; C6 z- ? O8 J
, E B' m/ o# l2 Q _snprintf( szFileName, 256-1, "%s//Monster//MonsterList",g_pBase->GetObjectFilePath() );
* r7 Z1 O1 ]" B2 ^! W! c szFileName[256-1] = '\0';
7 p4 c( }2 Y& K% X! \. I+ G8 E _snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "_%d.txt", (int)m_pBase->GetMapId() );
" Q/ b" F2 t# ]5 X. s, G- [& Y szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';
2 v1 \- |& d9 E6 V2 M U strcat( szFileName, szMapLog );
9 q. A7 O$ T8 D1 A CInStream MonsterInfo( szFileName );
: C4 v, ~2 ?9 u% \0 d if ( MonsterInfo.fail() || MonsterInfo.GetFileSize() == 0 )
6 T/ K! U: S# T. E3 N$ }1 F) Z {/ D$ J, K% o4 _. S* a
_snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "***** The Map(%d) Have No Monsters ! *****", GetMapId() );
" Y" x7 V6 }5 M4 t- a3 P szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';5 N- U% s- G e3 }. w a
AddMemoMsg(szMapLog); v* J& ^# l/ y% v
return true;: V3 W) ~4 v( T! ], ?5 r
- }# U j K) N2 L1 L+ L1 p7 w; N# I7 s6 G+ W
3 e. S2 ~( K& d9 R/ A& O9 t; @for( i = 0; i < iColNum; i++ )
W1 C& I$ I- M: _$ _0 q& T {
& f2 a: D3 [* r9 z( k7 ] MonsterInfo >> dwTeamId
6 q$ _. R" I& g0 d9 l* i >> dwMonsterId # z. I& G4 a. |6 ]
>> dwX ' ?+ a5 {% q5 X0 }- V& Z
>> dwY 1 [( b2 C1 N7 D9 o' I+ m
>> dwCount;' a* {* ^. `% `" F1 [1 B% Z
if( wNowTeamId < dwTeamId )
4 v8 U5 h5 H% U0 n B0 T {
D; O, y$ P3 _- i2 s wNowTeamId = dwTeamId;
7 k4 m3 Y2 n& H+ B* P }
. m1 b1 {& B$ f; M& R1 h& Y# t: k
- `8 y5 y4 f' @9 F& ~
5 {5 B& I2 e# l! F* Y9 A5 H/ o. N1 Y8 [& ?
for( j = 0; j < dwCount; j++ )
+ E: S( f6 Q( F9 k {, E! B: J& e8 z5 J
if( pBaseMonster->GetSpeed() )
" b% w' j/ F# q; j' ]8 Z, W {
. t2 D. F; B& _: [! ^0 @ J" x6 Y# t for( int z = 0; z < 10; z++ )* d+ W0 d- j- O' B( M8 r* S, u
{1 ]! t4 v& f9 B& `& Z$ s
dwRandX = gf_GetRandom( 14 ) - gf_GetRandom( 14 );3 D- G! d' W P" {- V5 G2 F
dwRandY = gf_GetRandom( 14 ) - gf_GetRandom( 14 );
3 E, e* K2 K; z, m# P if( !( GetTileFlag( dwX + dwRandX, dwY + dwRandY ) & TILE_ALLOCCULDE ) ) break;4 m; ~; g5 j9 j) X- S. m# H! ?7 {" Y
else if( z == 9 )7 D0 f" s4 _5 \0 w; B
{, A! c0 h% p8 G: s0 u! T \
dwRandX = -1 + gf_GetRandom( 2 );
* \5 k" f A" P* W; ^0 Y dwRandY = -1 + gf_GetRandom( 2 );0 ~1 E* X$ X: e
}
3 P, `; H" u6 ^/ w2 k) \+ _ }
# ~$ k( ^7 ?; Y# i } k% j2 D% T) p/ T
else6 l( ~* o$ G- ]& C6 G$ F+ n3 B+ e
{4 V) ]! G- A5 [8 a9 t9 l6 `0 N( \4 Y
dwRandX = dwRandY = 0;
; J& a; W- E3 g$ Q& F% I }
# \3 h6 ~/ {# ]- B( S! H/ A, t# S: N0 A# u; _2 R. ~. v
$ Y1 q# Q2 D- Q7 P3 C4 y
& U% G: K3 p/ B Q4 ~) I所以我的初步结论是:
6 R: C2 ?. Y. c8 P9 G8 a
5 _/ r$ u# @+ P$ H( g |