|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
1 @# h3 D6 @1 B3 h2 c$ Y, E主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ) M7 h4 K3 @* T7 d8 N
1 y) K1 ^& t6 t* m$ W. V- C其實修改無敵很容易,% u' t% N0 n) I4 v/ }1 C5 o% \5 n+ x
就以遊戲程式設計的觀點來說,
8 t! E% n- I+ ]. \一開始我會將人物無敵數值設定為06 _' E0 R( J) H& H2 _
ex:
# y. w; }/ o: Z* y9 v5 z#define InvisibleInit 0! j1 D8 i" i2 e) O- ]' e* ~+ v
7 U* A- D" }' m! X, F
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),* z; ~% `- ~( n. v R
呼叫設定函數$ W6 c& f: p6 _1 Q
ex:5 v) }8 K. [* m: V5 [
BYTE InviIniVal(EVENT event,BYTE SetVal) k& ]; X6 s3 A3 ]( D. t3 w
{/ W+ ^! p; }+ O( L9 t& ~4 G
//Deal event ...
# a/ P$ t% A6 L5 J) W5 }$ f& S( l+ t9 I" r2 X1 _# M
//Deal InitVal
" x, d r0 f& X( nBYTE ret = 0;
$ p# b5 |! w+ {5 B5 W) l# eSetVal+=InvisibleInit;/ d# Q! _2 x% c* u% P8 L+ { R
ret += SetVal ;
4 W( q; A1 W, b/ U0 m$ O3 S- }) sreturn ret;8 \2 ?, U1 ^; p( g$ U/ @
} & N& E+ ^ \$ @ [8 X6 \* P) u2 ^
; d/ i S( E1 q9 O5 c6 i- K6 W
最後關切的函數當然是遞減函數:3 |% j! u- H% z( T1 @7 s% T
ex:
+ T& g: g" y. @8 d6 }BYTE DecInviVal(BYTE *InviVal)
7 s& H0 H& u) \8 S{
! F- j2 }- n9 r1 D9 F3 Z9 p, D0 Kcout<<*InviVal<<endl;0 Z' T3 @4 Z9 ^; |# u3 X. B/ [
(*InviVal)--; //*InviVal -= DecVal;
5 C( o! z: p/ a+ O: z" h) D& z: m7 d& ucout<<*InviVal<<endl;
: n0 Q- ~ L& h# i(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;8 v, H" Q/ l, |4 I
return *InviVal;2 F- }+ A9 ]9 f- Z+ a
}& n) p5 l$ [. K" |
3 Q9 G" |. C# g* Y5 D& ~針對以上觀念,改遊戲就很簡單,
0 H$ q f" b. W" l4 D' n S一開始我們先初始化數值,輸入'?',# Q9 \- W2 t' a: M; P( \
接著開始無敵時,輸入'+',0 ~$ d" D: Q& t* o7 G
接著我們知道無敵時間會開始變動,5 @( R+ _5 K2 L+ x+ F @3 H; \
以上例來說時間開始減少,每隔一段時間輸入'-',; |- I& j8 o; \' }0 T1 }
最後沒有無敵效果了,輸入'!' 或是 '0'。+ z: Q8 Z) L/ ^
* A: V M- e2 j' P" @2 V0 `
記憶體地址經由演算法篩選後,只會剩下幾個,' @6 n% y& |0 [, s8 b- N P
try 一下,你要的地址就出現了。
: U6 d) t& @* v( n& m% O- ^
3 Y5 o" H% B7 \9 w/ ?P.S.以上程式已經Run過,沒有問題。' Z# U9 X" O2 y% G7 h
8 [0 `+ [/ E/ e# {' V5 y[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|