|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 5 V3 z: V1 X, O+ X/ w. O; k% n r: d
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
7 `. |* a2 w+ O, L
2 [5 P) p* l# n! c) k( |4 o- c其實修改無敵很容易,
7 A. y4 E: i: k' u就以遊戲程式設計的觀點來說,' W: @' @! G# B4 v
一開始我會將人物無敵數值設定為08 z- y. E& ^2 I- A( z
ex:
! P- C/ X: {$ a: J& E#define InvisibleInit 0' m/ a# Q) M/ i X
" D! B" t3 H. B# E
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
/ m v" b6 }4 ], y1 r! S呼叫設定函數
7 ~ T, M& \# U& _ex:
+ g* _$ n s6 a5 f4 [% m; yBYTE InviIniVal(EVENT event,BYTE SetVal)
9 u2 A" d) B" j9 g+ G{! B/ @5 D; r l# r4 Y
//Deal event ...
+ j' j$ Y3 M9 I7 G; [& }) y$ L5 X- s6 c0 ^% H4 B5 Z
//Deal InitVal5 w: ~$ x1 b2 y5 X2 C6 M
BYTE ret = 0;# ~% W4 g) V7 x! z( ^2 O
SetVal+=InvisibleInit;: W, c; J. @% c5 U8 B4 B: p; U
ret += SetVal ;
9 @: } h" H8 W% I1 ]7 m$ g$ rreturn ret;2 Y ^# x1 G/ J7 @) B1 J% V; `
}
* p/ r% v0 x) c% m) ~
* h# ?) ]7 Y8 t' O最後關切的函數當然是遞減函數:
, z/ L$ c. z# e0 N6 p) a, cex:
; S+ X( S9 m' n9 z4 J/ |; iBYTE DecInviVal(BYTE *InviVal)
% G* M1 K$ m6 T8 s{
- {' }7 p! p! d C {cout<<*InviVal<<endl;
4 `& m ^8 O# x" q. R; s, p6 `(*InviVal)--; //*InviVal -= DecVal;% }( c" e1 E( R9 M
cout<<*InviVal<<endl;
, W" l4 h) p9 t5 U7 H(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;8 {% `+ H* i+ R
return *InviVal;6 G) ?" ]" S% G/ d6 r7 r. ]0 O
}! ?; M% ^3 {: a/ M
n# l# _6 m$ Q" g% _# U: n) I d! ]針對以上觀念,改遊戲就很簡單,% H {& P- y/ e
一開始我們先初始化數值,輸入'?',1 x, S% ?- F1 L
接著開始無敵時,輸入'+',
K) ]1 q. C i% R( \接著我們知道無敵時間會開始變動,! e8 Q2 o" t2 ~& L
以上例來說時間開始減少,每隔一段時間輸入'-',
6 f' T& j& N$ a最後沒有無敵效果了,輸入'!' 或是 '0'。
. c/ _0 G9 q1 }: ]" f! a! i' \1 d4 h( d- O$ K8 @ B
記憶體地址經由演算法篩選後,只會剩下幾個,% `( _6 F) Q/ [! E( ]7 \9 x( T; Y
try 一下,你要的地址就出現了。
0 _! n3 \1 [2 u
6 \4 @; R. K- H# V; v* UP.S.以上程式已經Run過,沒有問題。
. ?3 E; E! w% z
3 O. V: {; Q% n4 Z; E0 l- Y[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|