|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
4 u/ [7 n) h* q" E5 y& \; k主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
, ]+ P! y8 c7 a- I% }# l/ |8 t/ w+ {1 O- j6 c
其實修改無敵很容易,4 T( Y4 x+ i' x2 c0 C5 y+ I2 C. H( d
就以遊戲程式設計的觀點來說,
* |- @2 y9 h/ z$ ]0 A一開始我會將人物無敵數值設定為0
0 Q8 W) R: ~- G% eex:
4 O/ U5 I, A8 j+ T$ W3 M#define InvisibleInit 0
5 l" P/ _9 M8 @/ D: R
2 T( G1 |" b5 u. K6 U- `8 W( A然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),$ Z( ?$ U7 W. n2 R* K
呼叫設定函數
- x' `- ^; r2 g* C) gex:( n7 Y h ]; S2 b7 Q9 {
BYTE InviIniVal(EVENT event,BYTE SetVal)8 L9 v6 b, m9 _" p, y
{
$ ?: y6 `5 ]% ]' d% a5 @* h//Deal event ...
x3 [& ?; J4 ]# t# e7 P
/ m/ U7 O8 ?# Z2 z+ q6 g5 t//Deal InitVal' A4 r5 r# V" {
BYTE ret = 0;: Y# y0 X) c( B1 r
SetVal+=InvisibleInit;
/ f% p" T6 |% |# @) |ret += SetVal ;6 k7 P8 o) @% x) K, q
return ret;7 B0 O* R4 b x; P( ~) X
}
h+ @: K0 }& q5 x$ T
7 o- E, u: X8 H: e5 q1 a4 y9 [最後關切的函數當然是遞減函數:( |$ \1 ?! C, S
ex:
. V( i& n/ k! u$ V2 x: X4 HBYTE DecInviVal(BYTE *InviVal)
2 _, o# o( I, N+ y{8 |, e. e: U) u5 D6 } B
cout<<*InviVal<<endl;" r8 B& U% R# s7 N) H: ]$ W
(*InviVal)--; //*InviVal -= DecVal;" I; g! P6 _! d- u& X# n+ z/ f1 X1 z
cout<<*InviVal<<endl;. e7 f o& s3 e. U
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;& b$ ~" w, ?9 I* s1 o" Z5 I8 W9 e) J
return *InviVal;
! u8 \/ @* y% y( ?$ p, _}
& y# L& d! l" N
" O- { Z$ y& F: y" @6 `$ ]6 h針對以上觀念,改遊戲就很簡單,
# {3 Z2 v& W2 q5 G/ \& m一開始我們先初始化數值,輸入'?',
6 W% H3 r$ l/ a, N: \接著開始無敵時,輸入'+',
$ t; x8 G0 d5 B* F接著我們知道無敵時間會開始變動,+ I& Y/ v, W q. c
以上例來說時間開始減少,每隔一段時間輸入'-',( i' ~) p. ]) b- T; n. @
最後沒有無敵效果了,輸入'!' 或是 '0'。
% \- d, H }* x7 A! ]
. S' a3 }, a: E G1 G3 [% d記憶體地址經由演算法篩選後,只會剩下幾個,
; d1 [* Y+ f! f9 Ltry 一下,你要的地址就出現了。1 O1 P& N7 B) ?3 E; p8 |
; q, b. M4 D" gP.S.以上程式已經Run過,沒有問題。5 o% F" j2 _0 [7 y9 r2 K# H
* X1 x. }" T' ~9 z# F$ L+ Q
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|