|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 9 L/ w) I0 U; k% l
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
' O( L7 o) n6 R. m! }; {; s' `- M$ r( j3 {" b; _; E8 r
其實修改無敵很容易,
- D% x% g2 ~$ L/ Z! r就以遊戲程式設計的觀點來說,
# ~9 t8 e& A4 M4 N9 t% f2 @一開始我會將人物無敵數值設定為01 d) s: |# s' c; X4 [# G! s& M; t
ex: 7 }2 p0 E1 j, A/ I( N7 [% U
#define InvisibleInit 04 c5 K `& F0 R
- l( M4 E( o; i0 m( P8 `" S
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),+ S$ m, {0 D6 H& O" l" b
呼叫設定函數
+ ]0 |: ^: W9 B2 ~ex:$ S* z) a. e) N. |
BYTE InviIniVal(EVENT event,BYTE SetVal)7 q! I1 K8 ~) X; M) j( S& j; H( u
{% j) N* h/ B1 R! W' V" g
//Deal event ...
& y6 ?9 b/ W- p' r9 [* G( H1 o$ ?( |% J; C
//Deal InitVal( V4 O8 B$ G- p5 ~3 y% S+ U# i
BYTE ret = 0;
, x. N. H( a5 X5 gSetVal+=InvisibleInit;2 Z6 r- ^* x# y0 ]- [! a
ret += SetVal ;3 E% o" B0 ~( a
return ret;
/ g# s+ U9 c$ u( J3 N}
1 J6 U# j! F0 W' W$ A8 V- j2 ]0 ~/ M1 T: f9 W3 ]
最後關切的函數當然是遞減函數:, |' _# N5 ^% |# Y F1 ]" G
ex:2 U; t3 y9 B* Y& r
BYTE DecInviVal(BYTE *InviVal)+ Z9 J) w, Y g0 t( }' g% ]2 G
{& V" g' n' M( V; [. M
cout<<*InviVal<<endl;
) n! e7 z9 d% R B/ w(*InviVal)--; //*InviVal -= DecVal; n/ x, V: R' X. }% M$ u: j
cout<<*InviVal<<endl;
e+ q% f- S+ ?(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
* }: a. k* ~* A" p8 C: ireturn *InviVal;' y0 j7 m& v, i) p1 n: W; F
}
4 t+ r$ G q/ Q; z# L% W- m) F' N+ m0 D& B; o2 p
針對以上觀念,改遊戲就很簡單,
$ r |5 S$ U* r一開始我們先初始化數值,輸入'?',
/ x p0 J8 W z, ^) I接著開始無敵時,輸入'+',
' F7 N& `) }9 A6 s接著我們知道無敵時間會開始變動,! V0 a" m1 ?: q) W$ e* v& y% {
以上例來說時間開始減少,每隔一段時間輸入'-',
8 q: |7 c! n0 l8 f( X: ^) s最後沒有無敵效果了,輸入'!' 或是 '0'。
$ `: `: ?& r" w3 z( }& W- p1 m: l" w5 H1 |3 T' [5 D
記憶體地址經由演算法篩選後,只會剩下幾個,0 z/ T) u% g" o% ~2 K& D: G& ^1 K
try 一下,你要的地址就出現了。
3 j* F* D, {3 m0 I) A% I
- I$ j! Z; [. c- oP.S.以上程式已經Run過,沒有問題。
2 s3 y5 t# D; h2 |3 [5 j" q9 ]8 I) \2 n: J9 C; H
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|