本帖最后由 zczczcle 于 2016-2-1 12:51 编辑 ' y1 {+ K% `0 b9 m
3 r6 H) o# E2 o; E
首先,这并不能预测下一个boss具体刷在哪,不过你能通过我的解读知道,boss是怎么个刷法。4 Q, s0 I) P2 F) g
其次,如果你有挂(付费的每天更新的那种),或者自己会解封包的话,你就能知道附近是否出现小boss了,在附近的话你还能知道他的位置。
$ k3 b2 F4 J: {( r# E" V+ ykuqitt 这位大哥提到打开MonsterList文件第一个数字是0是乱刷,但是后来又不确定很疑惑,原因就在于那个0,1,2,3,4和乱刷与否并无关系,或许是凑巧。4 M' }& j+ H( }& `, ~
' l1 e) c1 ?) |/ p1 ^部分选取代码,稍后解读:/ T. i% q; d4 M, d6 z/ H) k
WORD wNowTeamId = 0;3 z/ X! `, F0 o2 D$ d
- _; D/ t+ A2 B- j
_snprintf( szFileName, 256-1, "%s//Monster//MonsterList",g_pBase->GetObjectFilePath() );
4 @# a) Q, u" o& W) A- G szFileName[256-1] = '\0';' n" d) l3 O' |. y" T5 X. q
_snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "_%d.txt", (int)m_pBase->GetMapId() ); * D" t4 p. ]* M: u
szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';
8 ]4 f. f4 [! _( a strcat( szFileName, szMapLog );
; O8 o( [2 B5 Y; e CInStream MonsterInfo( szFileName );
% ], Z( C+ p2 y7 u$ v4 S- ? if ( MonsterInfo.fail() || MonsterInfo.GetFileSize() == 0 )
8 F# Q2 A% [9 q- N: p3 U {
0 ?5 a. D! M# x _snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "***** The Map(%d) Have No Monsters ! *****", GetMapId() );# H2 V. H" `1 v' ~1 a' ]( s6 k
szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';" m2 q/ q3 }" P( E V
AddMemoMsg(szMapLog);
2 R! X6 D- R: L+ b return true;' Q8 ^! |( X+ ^1 T- h
4 I7 q% P; |( g$ q) {5 j
( R' f$ d. _6 J6 j f$ G. R. e6 o) e `0 F
for( i = 0; i < iColNum; i++ )
0 x# u3 X0 B2 A# u" J: U/ Q {
& G) y8 _# `- K. u4 ^1 f3 V MonsterInfo >> dwTeamId 3 K, c; O+ ~# J# d d; G
>> dwMonsterId 4 Z1 n4 }! h& Z
>> dwX 5 r/ J% Y, p# }4 |5 K" K5 y
>> dwY
" d- k; T K- I' @ >> dwCount;
) K3 |6 }* V) }1 C if( wNowTeamId < dwTeamId )
" A" v+ ~+ k: g. G* L8 m {
, e3 T) ?2 k2 ?0 {& D wNowTeamId = dwTeamId;
Q' `2 q2 {: U4 T( T; G, I5 h& e( s$ Q }1 H' A4 H$ [+ R) K: y% x* X
* o ?# }: t( t& d7 w
, i; X# d' }) f' }( p$ h! Z- o0 u# |+ Q! a6 B$ j6 i
for( j = 0; j < dwCount; j++ )) D7 m/ d9 M; e
{$ [" d; ?3 b# ~' P: @- x# h
if( pBaseMonster->GetSpeed() )
! H( ]0 S% S a( V2 I& ]+ h, C' M {
7 s4 e$ w+ R6 Q8 i( A& K' K for( int z = 0; z < 10; z++ )
3 n" Y: Q$ C. y$ O& G; N {
+ ~3 g1 M5 E6 |$ C1 e* n. _7 d dwRandX = gf_GetRandom( 14 ) - gf_GetRandom( 14 );' D& `& W* [" Q \) h
dwRandY = gf_GetRandom( 14 ) - gf_GetRandom( 14 );$ I, s2 S& d E; [# M
if( !( GetTileFlag( dwX + dwRandX, dwY + dwRandY ) & TILE_ALLOCCULDE ) ) break;
9 U# Q( i, h( ~2 L else if( z == 9 )/ E8 R+ r' l' F% W1 f7 o9 ~' [
{
. E" V' v. n: `/ Q- k3 \+ \ dwRandX = -1 + gf_GetRandom( 2 );$ {" i( t8 h4 g6 e
dwRandY = -1 + gf_GetRandom( 2 );1 W1 X/ ~) r { j! }8 P+ D2 g
}) N$ q" m0 I4 r, y1 a
}/ O& g4 N: H- e
}2 ?! L- z" a3 X. }
else. B$ {0 p) m4 n0 |
{
# N& ]8 `+ n" A4 Z* s dwRandX = dwRandY = 0;
) S8 B1 I! L; Z1 Q, h5 K* Y }
( _6 z8 }- [! X
/ H! Y5 }( l9 z9 @& M, z9 T) S+ M9 l) E+ w
2 z# c' b2 _: @4 h
. t5 G% s7 p/ ^所以我的初步结论是:9 }+ Y q8 p" `( \4 l! r g: ^
( a2 \% e0 Y- x
|