|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 7 }" i: X' ]/ y3 K, D
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
( |5 m* ]0 q" y S* M' v) ]/ L% Z+ T3 d6 Z- I3 O* l( P8 `( S0 V" r
其實修改無敵很容易,
" N) I" [( P3 J" h% B就以遊戲程式設計的觀點來說,
6 `7 i: K, F$ w4 g7 p+ _* d, |$ D一開始我會將人物無敵數值設定為0
) V1 W' K; _& c% l1 W6 g: vex: , c5 X1 e9 K3 Q
#define InvisibleInit 0
4 H, U& Q! J* F! R- d% D2 U8 r
, U) ]. V1 w4 m9 g7 ] f5 C2 i然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),* i3 x- E8 T+ G* f x; ^9 q' a: ]3 m
呼叫設定函數
; k5 H' Y" a Iex:
[& V# h* a" [; xBYTE InviIniVal(EVENT event,BYTE SetVal)
# i3 X9 o2 a. K# ]6 h* Y{2 v1 L: Z- W2 x$ z& e! q" |. C' }
//Deal event ...! U9 ^+ t! z- _
\' t$ e/ C. \+ N! v//Deal InitVal
2 K' M0 o7 [7 b* }, pBYTE ret = 0;! |1 l1 P' h, }: c* j
SetVal+=InvisibleInit;1 h i0 T6 H8 b0 u$ ?6 c8 D, x
ret += SetVal ;' s& [' w4 K Y$ i
return ret;/ d+ U9 c: S3 B; R5 J! P
} 5 \6 R5 e2 J# m
T+ U$ p- R% ~% `
最後關切的函數當然是遞減函數:
2 x( ~, L" n+ q" Jex:4 r% O8 ~. _2 `7 H6 G- X
BYTE DecInviVal(BYTE *InviVal): ?# E+ n2 K( S8 K# J4 s5 h
{" ]7 m; t& v6 E% J
cout<<*InviVal<<endl;
" s; x+ o8 ~3 R9 a, ^& z8 W(*InviVal)--; //*InviVal -= DecVal;
/ t9 ?1 k+ x$ o$ P: p: n1 Ocout<<*InviVal<<endl;
2 Q" W* m. z4 P$ S e(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;/ \% t6 l! s- C: C% K
return *InviVal;
& p+ _% G) U, y- A# X8 S3 w}
. |* P9 R- C$ }
2 U8 ` V+ e; a. f針對以上觀念,改遊戲就很簡單,
J+ G! x) g3 K8 H8 L一開始我們先初始化數值,輸入'?',* R4 L; f; Y5 p; v+ R
接著開始無敵時,輸入'+',$ O' c% m q0 i9 v8 e; |
接著我們知道無敵時間會開始變動,% [- R' j0 g0 a" p! V$ O( X. J* t
以上例來說時間開始減少,每隔一段時間輸入'-',: i: k( F' a6 ?! l
最後沒有無敵效果了,輸入'!' 或是 '0'。2 D5 H. w: J: @# H* r
1 g) T& J3 ^2 W0 A) s F
記憶體地址經由演算法篩選後,只會剩下幾個,
5 c$ }3 L# l: ^try 一下,你要的地址就出現了。
4 K, ~. y* ]; n0 y" s6 P, V7 ?2 L7 Q7 a- n( {
P.S.以上程式已經Run過,沒有問題。
& F9 s% b! a+ _3 G$ O3 L
7 K: }. Y* l7 d& G8 C( _8 q1 O2 f[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|