|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
- c) ?8 c T( N+ a" i: o主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ; R7 H- J. }# B7 y
# m% {. D9 [7 Q4 k/ T o7 A& ?
其實修改無敵很容易,4 b! N, _. n$ V8 j; u, P
就以遊戲程式設計的觀點來說,9 h. G' x! r6 c) X: Y8 G( s/ P
一開始我會將人物無敵數值設定為0( y8 l; L" T' b9 {
ex:
7 p/ d1 ~7 ]4 ?8 j7 w#define InvisibleInit 09 I+ i- e, t3 w
2 b% S6 J1 ~; Q. [& F然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),1 G& X/ K2 }' [% @9 {' ]
呼叫設定函數 W) g, d" r9 q, H3 C: \
ex:
Y+ }# N4 j4 dBYTE InviIniVal(EVENT event,BYTE SetVal)
$ j0 _( r+ b$ i6 O1 O+ n{% c: v" h! L! ^ ?7 `" d
//Deal event ...
+ \ R' F0 n' U) g5 y. G$ W% N% E& h/ {* ^5 g4 U
//Deal InitVal
# A$ J4 s8 ]7 T" h3 i$ K, \BYTE ret = 0;' n% B& k) @# S2 q$ ?" z6 D
SetVal+=InvisibleInit;* H3 F+ f5 v* `; p7 z" b
ret += SetVal ;2 S3 }5 W3 a% ~2 e
return ret;( ?& p/ P2 u& @8 z5 G! S/ N3 \
} 1 P- c( D. t$ Y* `- N2 X
0 [% s. ~2 {6 t8 B2 v5 I, d
最後關切的函數當然是遞減函數:
+ p9 M( B! n, f( tex:
0 x3 a; C! j& [: O: _BYTE DecInviVal(BYTE *InviVal)
2 i% d3 L% |' u- o' v{" p+ p3 I* \# I7 |' E5 ?5 Q1 p
cout<<*InviVal<<endl;
. N4 G9 a0 Q/ l, C: {1 J6 K(*InviVal)--; //*InviVal -= DecVal;
H8 Z' f, ]- Ecout<<*InviVal<<endl;2 |+ J4 _( i# x, S; R
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;$ o* j4 z4 e, o' |2 l2 m/ N$ [
return *InviVal;$ Y2 m9 [% _$ k( @+ e: c1 n: [
}
' x& A8 m& K3 u3 E0 U6 T% X: u* u0 w- j
針對以上觀念,改遊戲就很簡單,% R$ |; O; j; [$ l
一開始我們先初始化數值,輸入'?',
( ?- X3 O* s+ K4 }0 d接著開始無敵時,輸入'+',6 v3 h' h* y; E; N5 X
接著我們知道無敵時間會開始變動,
& k( a$ E2 M( c4 o' {# L以上例來說時間開始減少,每隔一段時間輸入'-',3 R2 M2 Z2 j9 [1 X$ y0 `
最後沒有無敵效果了,輸入'!' 或是 '0'。1 p# \+ m; F, H: Z3 x. e
) Q: H) n( E+ z; ^& c2 i
記憶體地址經由演算法篩選後,只會剩下幾個,$ H, {: _1 a0 R2 D8 Z
try 一下,你要的地址就出現了。4 C2 N; ?; A: k/ B3 p
6 X: B; Y% c! y- ?! G0 ?1 LP.S.以上程式已經Run過,沒有問題。& ~2 U- } A% S' R. i; _
3 h: ^$ ]' a4 n: G# M4 @5 s& W5 _
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|