|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 + f9 M+ r+ _' m# O" M
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
7 I8 x& ? e. c/ T8 {+ {% @
8 j. g, C; n' m; f: J* l; t其實修改無敵很容易,
, a3 K6 Y j5 G4 N P就以遊戲程式設計的觀點來說,
6 A* h, ]. k" |5 Q一開始我會將人物無敵數值設定為0
+ X, ~. I% S# f/ Y! b1 h5 p+ Xex: # _9 D) M% S8 m9 y( _: N* f, b
#define InvisibleInit 0
i* Q- a5 J% L( Y" O/ V$ D7 D" s) I% q- q* y' Y$ n
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
1 h8 x$ k% K+ t, d" B- H6 ]" ^呼叫設定函數
% w' E& A+ n1 u+ l9 l' w1 mex:0 A ^- @/ [9 C: k0 ?6 B/ M
BYTE InviIniVal(EVENT event,BYTE SetVal)
4 b0 ^% _- ^2 |6 N: J{' Z6 O! {; x, @( z8 ]" ?8 \( ?
//Deal event ...
+ y1 U, z; ~7 X3 u6 Q3 I1 l; k" p" T, N4 `
//Deal InitVal7 r9 e9 V% m( n9 @
BYTE ret = 0;5 ^6 a- ^$ Q. r) \+ t
SetVal+=InvisibleInit;7 e" B/ u/ z4 L
ret += SetVal ;
. E1 a) f4 T# a3 {0 _8 L2 |! W. v7 {+ greturn ret;
# q5 c5 H* V, Z. c4 a( K}
p" |1 W7 d4 k9 m9 v1 F
4 z" z, U* B. g! x) _$ n最後關切的函數當然是遞減函數:! G' x2 h- o- f
ex:/ ~" u+ F: f+ P& G/ R
BYTE DecInviVal(BYTE *InviVal)
1 @/ \" U. j( A/ H! a- ?1 S{& x" N: m7 x7 M) E! B4 z* M
cout<<*InviVal<<endl;1 a. Z/ r0 K- V# C
(*InviVal)--; //*InviVal -= DecVal;
% O( Q9 L# N( R8 |- _+ Ncout<<*InviVal<<endl;2 f6 @$ W/ a, p" o
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;1 J( V0 z; n3 p$ Z7 l4 \2 k+ T
return *InviVal;( X3 M" f& P- L6 s1 t$ U
}& Z: l# Q6 r) o j
4 ^1 T1 Y* w; D0 y. q& v
針對以上觀念,改遊戲就很簡單,
/ [9 p% D: S1 G一開始我們先初始化數值,輸入'?',
, W3 w8 O' H6 T接著開始無敵時,輸入'+',
6 b- ^1 ^" W5 Z8 c接著我們知道無敵時間會開始變動,
( F, l0 e; a: n$ M" z以上例來說時間開始減少,每隔一段時間輸入'-',
. s |+ ]- c' F+ y4 h' G最後沒有無敵效果了,輸入'!' 或是 '0'。
( a4 B2 l1 R) B! B3 e k. J
% z' S2 G: T0 D4 W5 a* `. f記憶體地址經由演算法篩選後,只會剩下幾個,
: J/ }6 |: |+ \+ r9 \$ Ltry 一下,你要的地址就出現了。( `4 M0 z: \3 ~: `; a9 D0 F
9 ?2 S: f: k- I+ ~! `1 w8 H2 K8 e
P.S.以上程式已經Run過,沒有問題。
- _" B6 k9 Y5 y) J6 G. i9 g4 O& O( x+ I; j' o
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|