|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 $ g+ Y. I6 V" a1 P) c% s
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
' S1 ]8 U: v) K' l4 l' P
" k5 @6 u3 K( z6 w9 T Y其實修改無敵很容易,
. s. P3 T1 f J; ~, Q就以遊戲程式設計的觀點來說,
2 O9 H+ W5 I- |( l' P' r& O一開始我會將人物無敵數值設定為0
1 w% M* q1 y$ k5 N7 Y" ~$ oex: 1 b) Y6 f& b4 A( a% V1 O7 a4 y
#define InvisibleInit 07 C* F; m3 F$ F% \6 J8 t
* D' J+ A1 z- O
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
5 L: ?6 I+ V2 H呼叫設定函數6 a' _/ C9 @) k1 \/ @- j5 j) c
ex:+ ~( p' W- t. I, L$ ]3 k) G) M( o
BYTE InviIniVal(EVENT event,BYTE SetVal)
* E. @ u+ h6 {4 R) ]7 Z' K5 a9 A0 n{9 }( s/ I9 p) E+ Q T3 a
//Deal event ...5 |( W4 b8 T" O6 a( I
@7 ]: s$ H0 t( L/ B
//Deal InitVal
9 z' u! x8 q+ C! R T; r l0 LBYTE ret = 0;
$ O6 y0 l( }* ^3 l9 a wSetVal+=InvisibleInit;
/ x3 M0 Z+ i$ O& r) N- {ret += SetVal ;% V5 V: w q( @& i4 U
return ret;8 l3 d4 Q, v- j
} ; \8 y7 p; b6 s! S
0 R( B2 l ]' a
最後關切的函數當然是遞減函數:
" b& m; |$ S0 `: X, Xex:
$ N4 A/ g9 ~4 r$ f, Z: RBYTE DecInviVal(BYTE *InviVal)
& b+ A6 n% f$ R2 d+ I Q3 Q{0 N6 f: N3 r' g/ {4 c* n' k
cout<<*InviVal<<endl;! m- N! m5 x9 q
(*InviVal)--; //*InviVal -= DecVal;7 }' h) F7 L: A6 y: ^
cout<<*InviVal<<endl;
* N; x3 E0 S' s; q; z/ }(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
; l% E" _1 e3 _4 p8 s2 Treturn *InviVal;; s8 v7 j7 P7 G# S
}0 ^: j( B* Z6 f* @( f) x6 b
, Y; ^8 I0 E8 ^/ G1 i, ~* c8 P
針對以上觀念,改遊戲就很簡單, O) r4 ]8 ?: {* g5 U+ c! L
一開始我們先初始化數值,輸入'?',
+ o6 _/ J9 H: r接著開始無敵時,輸入'+',8 c" t/ d, R3 ~) O
接著我們知道無敵時間會開始變動,
& d3 x. R& f0 L" H) E0 R; W) [以上例來說時間開始減少,每隔一段時間輸入'-',+ Y$ T$ Q K X7 C4 f+ t
最後沒有無敵效果了,輸入'!' 或是 '0'。# g! M h# v4 X
& ]# O9 w6 @6 |& e
記憶體地址經由演算法篩選後,只會剩下幾個,3 s1 e! f5 w% S$ k1 t* P; K
try 一下,你要的地址就出現了。 O0 R+ j" W. X) r; [
2 N6 {# w& N4 H1 W6 H2 z
P.S.以上程式已經Run過,沒有問題。3 l I" d7 h0 U3 F- D w' |
9 t, N5 n6 B. r4 i
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|