本帖最后由 zczczcle 于 2016-2-1 12:51 编辑
; A+ T" j- O. k7 A. U, n! k) @' e- H0 R
首先,这并不能预测下一个boss具体刷在哪,不过你能通过我的解读知道,boss是怎么个刷法。
, h6 l5 b; x& l* ], ?$ j+ }其次,如果你有挂(付费的每天更新的那种),或者自己会解封包的话,你就能知道附近是否出现小boss了,在附近的话你还能知道他的位置。# s/ p8 l) E9 V
kuqitt 这位大哥提到打开MonsterList文件第一个数字是0是乱刷,但是后来又不确定很疑惑,原因就在于那个0,1,2,3,4和乱刷与否并无关系,或许是凑巧。0 E |5 K3 V& S0 o$ H& ^
4 ?3 t- ?+ Q* S- Z. k+ N: t部分选取代码,稍后解读:: g2 v" l8 ^6 M5 V
WORD wNowTeamId = 0;7 L$ I" D9 \ E7 W
8 Y& V" K0 P6 E8 @% E
_snprintf( szFileName, 256-1, "%s//Monster//MonsterList",g_pBase->GetObjectFilePath() );
- o; u1 d' |) }; J szFileName[256-1] = '\0';
% n/ e) }/ j0 m; q! ?9 K _snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "_%d.txt", (int)m_pBase->GetMapId() ); 5 s# Y% |" g3 o6 {6 f5 q$ p! H
szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';; I8 J: I; g7 e" i1 \
strcat( szFileName, szMapLog );
. a7 b+ ]0 e1 Z. v( h; e! r- V1 _ CInStream MonsterInfo( szFileName );
0 S2 c, l) j" o; g if ( MonsterInfo.fail() || MonsterInfo.GetFileSize() == 0 )
2 a- x. k% y) _+ K% L/ K9 e7 ? {
# a. t3 f1 R& p4 u- q! w7 p2 z _snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "***** The Map(%d) Have No Monsters ! *****", GetMapId() );
3 V6 c* W9 p& |% x szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';
; F, P" M+ n. T2 q8 @, K AddMemoMsg(szMapLog);/ ]$ q1 `' s0 e4 y, A0 Y: ]1 C* P
return true;
* s& L) d6 m) M! ~
# q, z( ^" r' P
+ w E% |$ n+ ~- r0 P- U4 Q0 F1 P X! W3 A" P! y
for( i = 0; i < iColNum; i++ )/ y# P& C( }- Q5 r4 B0 Q3 |" K; V
{! a T: B. d) l1 L8 [
MonsterInfo >> dwTeamId
. U- d5 t6 b, q4 C# _ >> dwMonsterId $ U# X. u! V2 E @, P
>> dwX
! X! n7 _1 T3 }1 i- I# ~ >> dwY ! l, y* j. z1 n1 l2 I
>> dwCount;4 J2 n' `' } m
if( wNowTeamId < dwTeamId )1 g9 Y; }9 U( e% m) r8 g) m
{
# Z( {1 y& T. c8 s1 P% g; ?8 Y wNowTeamId = dwTeamId;, S. F, r1 r& F6 P/ S3 l! g& i2 q
}
' f: L. T5 B: u' `) r- Z- x5 m2 t$ q5 i' ^. a1 c
* Z* O' Z& h9 V; r; k8 m1 N w7 B- h$ u+ c
for( j = 0; j < dwCount; j++ )9 o# Z. D2 R9 t
{2 t0 S3 ^+ N& w# L+ |+ ]
if( pBaseMonster->GetSpeed() )
1 {5 C* ~& X4 w' [5 }! S% | {
8 G1 V; o7 C" X for( int z = 0; z < 10; z++ )' G( v7 ~2 w0 C7 j, Q+ b
{
- d+ _" {+ K; p! @ a6 L* w* L dwRandX = gf_GetRandom( 14 ) - gf_GetRandom( 14 );$ Y3 {+ d0 }$ J" ~' J
dwRandY = gf_GetRandom( 14 ) - gf_GetRandom( 14 );% ?1 M- p6 @' b( R
if( !( GetTileFlag( dwX + dwRandX, dwY + dwRandY ) & TILE_ALLOCCULDE ) ) break;
8 D0 z2 F7 N; @! D" p: m else if( z == 9 )
" n8 Q$ [, Y% J8 ~ {2 m0 l1 c; I0 \
dwRandX = -1 + gf_GetRandom( 2 );0 v+ E9 L4 d- S7 X! h0 g+ f% r" @
dwRandY = -1 + gf_GetRandom( 2 );- u' D# K( o+ \2 L/ g! ?
}8 v; a1 U" i7 C/ m* e8 s
}
5 V- e5 q3 L% F* Y }3 \4 f5 u2 W9 b+ W0 W: h* U- f6 G3 ]0 P+ ]
else& e$ v2 ]* S) O, V
{: P3 b# W: S+ W, j/ N' `
dwRandX = dwRandY = 0;
[" G7 Z7 M8 b+ x" n6 y1 g }
8 n' `: l; I n6 d
* a* ~) J! m& B, ?* J
( t; J$ q5 B3 v0 u$ J: t6 F3 M: _- o5 E/ `9 |9 s% p
所以我的初步结论是:
& v4 h1 y, _- c9 N* B3 u5 u
/ m. B: K) m- r4 W& ?8 D4 r0 | |