|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
0 H. ?+ e6 \$ p主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
' P( S+ V' [. j: m3 V
( |$ w3 r& e0 ]* W3 p9 O其實修改無敵很容易,8 c/ [; E7 ]! C. L+ I
就以遊戲程式設計的觀點來說,1 w! W6 E/ j& c
一開始我會將人物無敵數值設定為0
2 u% b1 F9 X! |' Oex: 1 ^3 y9 u V$ n! n7 G* \8 f
#define InvisibleInit 0
: B3 v9 V8 G5 v" @" d* Z4 i; N
5 n3 c0 l/ J6 l然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),- Y6 | X& \2 j4 p, d6 n+ o
呼叫設定函數
( \! {) p7 ?7 [( O! |; l Nex:
6 d7 e/ N7 E1 B' [; IBYTE InviIniVal(EVENT event,BYTE SetVal)
C8 O; m! }' k" w4 b{6 X/ u* r7 m9 n9 Q% l9 c4 S+ ?
//Deal event ...3 F/ U+ \. J, G0 }+ d7 r+ U
4 C+ ]7 z: ^9 V$ r/ K
//Deal InitVal' I3 a- Q' [) p6 _7 D: H1 C
BYTE ret = 0;
4 i# \+ b; g$ N9 _: m6 m% r. {) t; ?SetVal+=InvisibleInit;0 N% N, R: Z6 A5 ?9 T9 G
ret += SetVal ;
- j6 ~% T" e! f" Z0 E' u0 Q; s, Xreturn ret;6 Q, [$ n& b5 O4 {5 q# ?2 A+ A! s
}
?+ {. p) ^$ Y# ?# y( E7 r9 _8 g6 n" K
最後關切的函數當然是遞減函數:3 ]4 @& G+ S6 c( F
ex:
& K) `/ x! K: ^BYTE DecInviVal(BYTE *InviVal)
" N) w/ u a2 X. v5 i2 [{
" U/ y/ ~( S/ A6 R0 Hcout<<*InviVal<<endl;/ B/ k0 T) w+ k+ n. q) p. u2 A
(*InviVal)--; //*InviVal -= DecVal;
6 g3 M' X' R w- Wcout<<*InviVal<<endl;' }$ s) ^! u2 E6 Y: M% r
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;9 m- M/ h$ `2 {, _4 C3 X
return *InviVal; b- G' q: f. b ]- \$ n. c! m) I
}
; \9 j, K U2 T8 F; g: e8 \' y) X: v' |
針對以上觀念,改遊戲就很簡單,6 l! _+ a# \; T2 ^
一開始我們先初始化數值,輸入'?',9 ]% ?5 e# o8 Q0 Y. j1 F6 Q
接著開始無敵時,輸入'+',
0 X: p4 |7 q$ ]! O, | e. F接著我們知道無敵時間會開始變動,* O2 ?: c! H, h( ?8 p* x
以上例來說時間開始減少,每隔一段時間輸入'-',; ]$ R( q' `0 B
最後沒有無敵效果了,輸入'!' 或是 '0'。
+ d/ e9 T0 ~0 @4 ]/ X( a
6 d- s. q7 u r" A2 j; \記憶體地址經由演算法篩選後,只會剩下幾個,
* q( ?& q5 w0 [try 一下,你要的地址就出現了。" X& S2 p- u4 o5 b, ?# ~
6 P3 |' T, _; ?P.S.以上程式已經Run過,沒有問題。
: }. R' \5 s; ~: j8 b9 G1 F6 L- ~( Z. n0 D- x9 l
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|