|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 & f1 Q7 G: }# j- s. P
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 & S, _. G* M1 |; Z+ u# r/ Z% Z6 [. j
7 ]8 A% o. F" B$ s9 s" D4 A6 P1 ?
其實修改無敵很容易,
h/ Q# ^4 l! q9 K2 w2 w$ n- v就以遊戲程式設計的觀點來說,7 O0 U1 x6 E, q( X$ M+ l
一開始我會將人物無敵數值設定為03 \9 l! O" w( _% \9 I4 m- h
ex:
. C+ t0 r# b6 k* \#define InvisibleInit 0
9 P8 Q0 o+ D1 t
, m! y; y2 t, J5 ~, t然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),( {; F; q# Z& N' H
呼叫設定函數! u( H" @. K9 }/ s! _: A
ex:
, E. X- E& x5 d/ y) ~1 X5 TBYTE InviIniVal(EVENT event,BYTE SetVal)
2 L( y i% g4 d$ b' k; U{
5 A3 U0 x2 {, d+ f! D& C7 n//Deal event .../ ~- l. C( Y8 g6 ~
) p& y3 T* z' I, W//Deal InitVal
5 _" r. Q% ^) y% }BYTE ret = 0;/ ^+ b- x& N, O! ^% T5 R" B9 \
SetVal+=InvisibleInit;
: b6 Q: l# B& Cret += SetVal ;
2 U8 H+ ]5 z0 F( u# c4 mreturn ret;9 F- v9 N5 c" B- T
} d5 w+ L: o G5 g5 I! A7 H
* N% `9 G. O s
最後關切的函數當然是遞減函數:
% m8 r3 I& k! l; Eex:% r$ q" f" Z5 M
BYTE DecInviVal(BYTE *InviVal)
; I3 v( j V% Y' c* o8 j. n1 k{
1 ?9 v Q+ `1 U0 i4 dcout<<*InviVal<<endl;( _) T. v* m- y- T ^
(*InviVal)--; //*InviVal -= DecVal;8 u! T. g: X b/ D0 d2 b" b
cout<<*InviVal<<endl;* m6 [% @9 ]2 n, C- r
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
8 t3 Z! F/ N9 X* l N5 J3 lreturn *InviVal;5 X2 s6 e. z; k' _9 l2 d) t. u
}
" n) |+ i) Y/ w
5 d0 K4 j& H4 c% V$ b針對以上觀念,改遊戲就很簡單,2 K. @9 x$ l0 b
一開始我們先初始化數值,輸入'?',0 j7 D6 a9 L" S; l8 o
接著開始無敵時,輸入'+',. y; @3 ?6 w' W- |3 W/ A2 [
接著我們知道無敵時間會開始變動,
; p9 }% E- v8 Z. ?, P; M9 w T1 S* }以上例來說時間開始減少,每隔一段時間輸入'-',3 B) R2 Y7 Y' r$ L# ?
最後沒有無敵效果了,輸入'!' 或是 '0'。
+ ?' y# B. z: @) Y) d% X' o
. Z; m e! b/ X" v, X記憶體地址經由演算法篩選後,只會剩下幾個,
3 j$ U3 |. X# S: \$ B Ytry 一下,你要的地址就出現了。0 M2 ^3 o4 e3 `( T5 }
# _9 J: b& L5 E) z2 T. P; ]
P.S.以上程式已經Run過,沒有問題。. l ]0 u, t4 [+ i1 h0 U" I! ~4 h
6 Y' U! p( H# F6 u[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|