|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
& h0 h/ t! q/ o$ C; H0 W# E主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
& {% S& a8 u3 r7 _* J K
1 ~& V2 n5 y" ]/ `. g6 M; f! H6 O' j其實修改無敵很容易,
1 ]4 {; Q# K- E就以遊戲程式設計的觀點來說,
" H6 Z& M; \! [4 N一開始我會將人物無敵數值設定為00 }7 }' \* O8 e& {7 A* b8 O
ex:
5 R I R E+ i#define InvisibleInit 0& H; q2 ?" ~& @3 U" e! z- `% W
( I0 E$ R) s! X
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
& z, o. y9 S6 R7 Q& L呼叫設定函數
1 R! }" P; d' {. m; U5 K' Wex:7 a% ^* U3 {% V2 v/ f# e
BYTE InviIniVal(EVENT event,BYTE SetVal)1 }% v& e2 S. f: `: ]9 b: m
{
% b% \- O7 N2 @9 S- B6 F/ f7 U//Deal event ...
! d- S# m: P1 ?9 A* {$ w6 r. ?2 O" M
//Deal InitVal4 J. z" \' _7 U( ]% f
BYTE ret = 0;& _5 _8 I, `3 m; D1 T
SetVal+=InvisibleInit;
! e& H% _) B ]5 t9 } d! mret += SetVal ;
$ z4 E; K9 E; w% Y. ?+ kreturn ret;
0 T3 I6 J4 V/ n' i& G}
. _$ E5 a& {1 m8 z
! t, Y2 {( T4 z! Z7 ^( s/ ], _0 A最後關切的函數當然是遞減函數:& _7 ]1 O. @7 E3 B& P$ |
ex:
9 u+ L E: F" o8 E2 tBYTE DecInviVal(BYTE *InviVal)* S1 H) m9 a5 t, g- y6 J# x
{
+ U" V$ s6 h3 U) c5 I+ Jcout<<*InviVal<<endl;, K: t0 o* M, l' m" P9 }6 \
(*InviVal)--; //*InviVal -= DecVal;
% t7 _% u5 d! g7 Zcout<<*InviVal<<endl;3 \8 ]" v: o; b6 O% M' m
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
3 y& j. ^3 V3 ?6 q7 j5 U4 Dreturn *InviVal;! d6 [& w; n0 F- N
}: S! Q# Y# k6 B* |
7 W* c% t5 x1 S7 `
針對以上觀念,改遊戲就很簡單,9 n$ q' T+ V; [1 Y; s
一開始我們先初始化數值,輸入'?',4 t3 ^0 U: Q) z: L# s6 h
接著開始無敵時,輸入'+',
5 M& i4 V- W3 b. C; a接著我們知道無敵時間會開始變動,5 ]+ p/ N1 K8 C; Q& e7 Q8 [. _
以上例來說時間開始減少,每隔一段時間輸入'-',
& }7 ]1 t ]4 o最後沒有無敵效果了,輸入'!' 或是 '0'。. z, _: l$ _: P' Z; O; X j8 [6 @" ]" e
/ R* i! E l: [9 }
記憶體地址經由演算法篩選後,只會剩下幾個,
( X$ X" F5 @1 r% }try 一下,你要的地址就出現了。
9 c$ a0 _* g9 _4 s& z9 n S
K8 o! T+ q9 q w6 u9 s; SP.S.以上程式已經Run過,沒有問題。9 N) K) k" {8 ^+ A" U+ @
# A8 L: {9 j. T! w[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|