本帖最后由 zczczcle 于 2016-2-1 12:51 编辑 6 a& ^/ n, C6 S* h
2 x! y( z$ U2 L4 J7 j7 M
首先,这并不能预测下一个boss具体刷在哪,不过你能通过我的解读知道,boss是怎么个刷法。, ^7 |3 j- J8 ?2 B
其次,如果你有挂(付费的每天更新的那种),或者自己会解封包的话,你就能知道附近是否出现小boss了,在附近的话你还能知道他的位置。
0 J4 m% d4 k/ n6 Ckuqitt 这位大哥提到打开MonsterList文件第一个数字是0是乱刷,但是后来又不确定很疑惑,原因就在于那个0,1,2,3,4和乱刷与否并无关系,或许是凑巧。
" Y2 |2 n: B# A
# b; N) H4 o' ]6 A P1 w' J! V部分选取代码,稍后解读:- o8 n' K* j3 G8 ?8 U/ s5 P/ Y
WORD wNowTeamId = 0;; W* ~3 u* o7 N+ ~) t
4 ^( E( p5 V" I4 V6 R6 ^ _snprintf( szFileName, 256-1, "%s//Monster//MonsterList",g_pBase->GetObjectFilePath() );
: |* y9 ~& i/ d: L* Z szFileName[256-1] = '\0';- j0 ] B- O+ V1 \# p4 n
_snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "_%d.txt", (int)m_pBase->GetMapId() );
/ [9 ?) B2 E( B3 G- t, r& i szMapLog[MAX_MEMO_MSG_LEN-1] = '\0';
6 Y1 U5 z9 d, C& k5 m' p9 @ strcat( szFileName, szMapLog );
. ~1 F: }3 U- e' ^: |# ` CInStream MonsterInfo( szFileName );
: [1 @0 H& F0 q3 R if ( MonsterInfo.fail() || MonsterInfo.GetFileSize() == 0 )
7 \# I2 \7 M% B" y5 _/ M O {9 E5 ]. w: Q# ?% k# g/ f. v5 U
_snprintf( szMapLog, MAX_MEMO_MSG_LEN-1, "***** The Map(%d) Have No Monsters ! *****", GetMapId() );
( x2 {- ?. U1 i+ l$ J2 i szMapLog[MAX_MEMO_MSG_LEN-1] = '\0'; M6 U- e4 c& A Y* N) ?9 ?
AddMemoMsg(szMapLog);
: h$ M: ]- M- Q0 L0 g T return true;
* \: i( f- |# q6 h0 G" T ?1 ~
, }% q; @2 R0 X
8 A+ O D' q& |% v+ K2 s) Rfor( i = 0; i < iColNum; i++ )- U! p1 {3 L8 ?
{
; [" `8 o2 S' \& [ N! h* O" z$ [ MonsterInfo >> dwTeamId ) X+ `% ^& ` ?0 j: D) R, }2 {* f
>> dwMonsterId 9 s" N. Q; H. G% }0 K. J# `
>> dwX
0 [* W( [* \' ]+ c/ w >> dwY
1 ]0 o% A, {% a3 |1 s >> dwCount; }& h+ [4 ^' K9 r% |' \
if( wNowTeamId < dwTeamId )& q! d- d9 R0 Q8 I- w: r7 n2 B
{- R$ `" L3 ?& X0 g$ w5 C
wNowTeamId = dwTeamId;5 H9 Z ]8 w. J4 H
}
' E# Q4 a3 z+ Q) B
! l8 c# e& V/ ?; ]# d# N a7 j) ?! [/ E: B) s
2 \$ h) W) x2 A9 g for( j = 0; j < dwCount; j++ )9 {6 z8 X* \ k
{
5 v1 e" B8 \# T0 B) ?9 b if( pBaseMonster->GetSpeed() )! K4 P6 U' @1 B" A7 {6 `6 [
{
B+ P, y, O1 Z; _1 i$ P& }1 u( g for( int z = 0; z < 10; z++ )
6 P; E9 x& ~8 A! j* h2 @3 @ {9 c0 x: P5 p, Y& s- r; l
dwRandX = gf_GetRandom( 14 ) - gf_GetRandom( 14 );, O5 K4 P8 U$ ` R' `
dwRandY = gf_GetRandom( 14 ) - gf_GetRandom( 14 );2 F5 o& H& x' y$ x3 _0 Z1 Z
if( !( GetTileFlag( dwX + dwRandX, dwY + dwRandY ) & TILE_ALLOCCULDE ) ) break;; E2 n7 v+ H4 D6 [* x" W6 `
else if( z == 9 )0 L- W1 |0 W' u: X1 V
{
3 s6 y5 K) [3 B( S! {; Z* L' e& X& A dwRandX = -1 + gf_GetRandom( 2 );
) n8 l5 @, a& J$ q( c# L; A, G$ e dwRandY = -1 + gf_GetRandom( 2 );
5 y1 W3 B& _/ n; G) q/ X8 x }$ D' t; g5 o' B% _6 ? e
}
9 b, n! w2 _' ^4 X. m; H& K }
' X# S4 w; {9 h9 \ else
7 {" R. \; ^8 u. T, O {
4 a' ^' J" V! W dwRandX = dwRandY = 0;, m% g5 M# }! \4 b o0 L
}! ^. U" S+ L3 r! A
6 @1 h$ J+ n# G+ p6 p* Q
8 r, k8 S& L2 d9 N3 H0 H. {/ ?% o- p' C4 l
所以我的初步结论是:
( \# S8 g! `/ i% r& K. p0 _2 `6 D: W4 ^2 }! z
|