|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
; [7 H& L7 r7 g- h) f: v主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 0 {0 i# Y* V7 e
" q1 ]1 d) b3 `( U
其實修改無敵很容易,
; M; S( y. o+ n* U q z, v就以遊戲程式設計的觀點來說,
4 |) U7 l. o& }* R一開始我會將人物無敵數值設定為0
, f+ o) M4 B9 i8 D1 y$ d0 `1 Sex:
' E# }! v) _* W0 z% F#define InvisibleInit 04 O2 `4 q1 u, s2 S
1 [+ ^' O( Z( B% x3 M! h! L8 c
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞), f, X+ k1 `+ W8 w W
呼叫設定函數& W: P7 H" W. {5 d' y4 o
ex:
1 k4 p* l$ A) `' B) U1 JBYTE InviIniVal(EVENT event,BYTE SetVal)/ o6 E& Q3 U) e( T
{& B! F% m( _: G8 u$ y3 e( @
//Deal event ...
; n- c9 {5 y+ a+ a4 ~% O1 Y% u% M6 f- ~9 L1 u5 R* [% E: k
//Deal InitVal
& s1 D; n0 j) i( a- R9 b' pBYTE ret = 0;0 _- H* }' b) ]
SetVal+=InvisibleInit;% R/ i. t8 p/ O* H# ]& p9 G
ret += SetVal ;
, e0 u, X6 K/ ~* b2 U* jreturn ret;" a( f% K; t/ v+ [
}
) F5 j$ E! T- l
, y1 h0 u8 U! G( V最後關切的函數當然是遞減函數:2 w; S4 r+ K2 l
ex:
0 B: l) M4 }( e8 b2 |BYTE DecInviVal(BYTE *InviVal)
- R1 @! x4 X7 x- R( X' R3 n{
, ?0 m3 t8 `+ t3 B( |cout<<*InviVal<<endl;+ E7 n, U! p5 ~
(*InviVal)--; //*InviVal -= DecVal;
5 s( h2 @0 P7 |: A8 X( h" Ncout<<*InviVal<<endl;. t6 q" W: {/ G; e
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
0 o7 y% S0 e) C, U: Y* Sreturn *InviVal;' T2 u; ~/ o1 t1 H8 P: s: D
}* ~2 B% c1 b* j! j
# ]- j* R2 \9 B( `. K
針對以上觀念,改遊戲就很簡單,
. R. V6 ^) c" [# K一開始我們先初始化數值,輸入'?',* l4 m N+ v$ X7 z) W
接著開始無敵時,輸入'+',! N, |9 W F0 _9 R
接著我們知道無敵時間會開始變動,9 B! H& m* N; m7 O
以上例來說時間開始減少,每隔一段時間輸入'-',
7 M2 b6 B) \4 b; i! h& f最後沒有無敵效果了,輸入'!' 或是 '0'。- o5 h1 V9 \4 G2 J/ `( N
/ R9 C. o5 t3 X* [# n% T6 {
記憶體地址經由演算法篩選後,只會剩下幾個,* Z/ ^, o- E5 w0 j3 m& V
try 一下,你要的地址就出現了。
1 ~. r. |! M/ C1 q& U5 n8 R* ]2 c0 w7 `4 p
P.S.以上程式已經Run過,沒有問題。
9 u: a/ n0 B$ |7 T5 h
. W5 [$ f. M# s! B5 C8 i. O[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|