|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
# t/ `& {$ ^6 s主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 / P. s; f0 \8 _% q
$ H9 d9 G' o$ d! M其實修改無敵很容易,
9 @4 s- ?- I2 `/ f0 q就以遊戲程式設計的觀點來說,
( ^6 k7 U' S& A% } h( }8 ~一開始我會將人物無敵數值設定為0
( W8 C* r' r( }1 F' W3 Q/ i6 Yex:
8 t+ y9 w" X/ M2 u- s0 d#define InvisibleInit 0
. N4 E% l& |6 \9 D: Y7 w
+ [9 n; N# e8 W" h9 \3 j然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),/ D$ b) S' Y0 y( S9 @* n8 A: F
呼叫設定函數; m' K: D* I* E4 ?$ T' L
ex:
1 F" T5 \( G; [; X- {; h; {+ |BYTE InviIniVal(EVENT event,BYTE SetVal)
: ^1 T6 X$ k! I0 }, u- n* @{# T6 ~/ B3 T* w4 U& A! S
//Deal event ...
) G! ]' s) U- s) Z6 ~6 t# |* O6 m2 X( T% h
//Deal InitVal
0 ~& U0 N3 K1 {0 }, Q* CBYTE ret = 0;
, Z- p' f s* P" M" rSetVal+=InvisibleInit;1 T: {. B/ ~" X0 B# ]: C' ^2 S
ret += SetVal ;" ?; ~6 Y7 E, p
return ret;
! ]: ?& S; `1 o$ w/ G; s6 D} 9 n0 H% l+ g0 R- R
. p5 j; W2 Y v4 _- {最後關切的函數當然是遞減函數:5 Y H: b' [. A8 i( |4 u/ X
ex:# E) G) {; L- E5 X R
BYTE DecInviVal(BYTE *InviVal). v( s; e8 \# I9 @" T) r4 R
{, `) |: a& N7 }: e
cout<<*InviVal<<endl;6 Z- z1 a) ~4 T8 s" c. r2 f
(*InviVal)--; //*InviVal -= DecVal;; Q) O, s$ E. N
cout<<*InviVal<<endl;* h8 {5 Y5 x3 {( |
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
+ k+ Q2 u- p) ?# K1 freturn *InviVal;: w2 t* i$ [, }. e/ c5 ~
}, |7 u) \+ P o5 B4 ]- V' O
7 j- C9 t0 ]) t2 E9 @& l1 i
針對以上觀念,改遊戲就很簡單,
" |, d! {8 V; P9 ^) y7 G一開始我們先初始化數值,輸入'?',
' q, M2 w( A$ q$ b4 B# `接著開始無敵時,輸入'+',
, I' O) d# ?$ E [接著我們知道無敵時間會開始變動,7 A3 o# N9 q" P6 o3 H4 n; q
以上例來說時間開始減少,每隔一段時間輸入'-',
" r; ?4 Y/ g$ @1 H# T最後沒有無敵效果了,輸入'!' 或是 '0'。
8 T/ y8 Z# U( V( p# D& ]% V R
( a: p8 R) b1 {3 G; F記憶體地址經由演算法篩選後,只會剩下幾個,
0 D+ M8 b0 m3 w2 ^9 [. L% jtry 一下,你要的地址就出現了。
% c7 h% K" G F4 c5 D+ \
9 @- {: I- ]6 Q& u" f- r$ CP.S.以上程式已經Run過,沒有問題。
5 A* O0 U) O5 G9 m* s. S7 ]' z3 N
# G! P3 \+ K" q4 a5 L; _, }[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|