|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 7 o# @. d" V- ?1 t3 b$ A# A3 C2 [
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 3 f. Z" p; ^0 u" M; m9 n
1 w# Q3 l$ D& {1 \4 Z6 m
其實修改無敵很容易,
! J! h( j& H$ u就以遊戲程式設計的觀點來說,
+ u4 ~, H% J$ D. z一開始我會將人物無敵數值設定為0! E( _7 K7 {+ Y
ex:
2 v3 W( E% r* u/ E, Z5 p. @: H#define InvisibleInit 0; u( t5 d7 d) U+ D) o
' w4 A. V3 h/ [" P4 z& [! N
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),. q# I2 W+ Q3 a! G# B
呼叫設定函數' u$ w0 @7 L* \- p* ^
ex:( R8 s" N# B' R8 ]# H! I0 l
BYTE InviIniVal(EVENT event,BYTE SetVal)
5 x { n4 X5 G' y{
# ]# c$ P' t5 M//Deal event ...
9 _# w5 c7 v- ~& z% e3 X; M' v. _1 N8 j" { ^
//Deal InitVal! X* G, Z1 v/ E5 h2 m4 ]) ~
BYTE ret = 0;1 E: D) z/ e1 ^- V" s/ o
SetVal+=InvisibleInit;- f: Y+ F8 w# z- _- Z
ret += SetVal ;
( w+ Q8 N4 ?2 U" [7 h6 z5 kreturn ret;0 O; {1 V% O' N" y. W! V1 _" ~
} * T/ A+ _2 p. E; j, d5 G
1 Y }3 |8 c% @4 e" _. `3 B( n最後關切的函數當然是遞減函數:" I) n1 ]* d1 J/ D: Y! i; Q
ex:$ k7 S7 W' i0 ^3 E
BYTE DecInviVal(BYTE *InviVal)
6 Q* ?4 v7 l3 l8 Y{( y5 G* j" K9 \" H8 W A0 p/ n3 x6 I
cout<<*InviVal<<endl;$ D3 s7 F) S l
(*InviVal)--; //*InviVal -= DecVal;
% j' K) c+ _8 d1 L# `* ccout<<*InviVal<<endl;
H0 g1 a* H5 a. }(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
9 y5 L1 O; K9 w, I1 \' u+ \+ ~return *InviVal;7 A6 e& m! J a
}7 c* q* M/ }3 I) C" c, }# \0 `, n0 |
8 i/ O9 Z5 R6 ]
針對以上觀念,改遊戲就很簡單,
' q& X+ a" T# g0 P: q一開始我們先初始化數值,輸入'?',
5 T' ~- H( x) w2 z接著開始無敵時,輸入'+', f' P, t7 m" ?7 r& S
接著我們知道無敵時間會開始變動,
) F7 @, j9 T- R! @以上例來說時間開始減少,每隔一段時間輸入'-',$ K) z# `+ b H) D
最後沒有無敵效果了,輸入'!' 或是 '0'。
8 m. O& ]) H i# B$ ]" B7 h2 S9 d7 g2 P2 C
記憶體地址經由演算法篩選後,只會剩下幾個,
+ A q, r+ d8 Z( f3 Jtry 一下,你要的地址就出現了。7 s' K8 w- Z8 K, s% z, [
" O: z; Z, X# Y' i! o" P
P.S.以上程式已經Run過,沒有問題。
2 Z/ |$ Y: d0 G0 u1 r+ U, }2 }) @) P7 R
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|