|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 * U1 z2 U+ x' Z" j! o
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
9 C; r( x' N1 N7 m
! W0 x1 l. u, t* m0 j6 T其實修改無敵很容易,
9 V4 Y: `& a& {% p) I7 c0 A就以遊戲程式設計的觀點來說,. o3 u6 ]4 j% U2 x$ u* E$ b
一開始我會將人物無敵數值設定為0# k% V* Q% ~6 \
ex: 5 ?7 e* g/ [9 k1 L7 s; f4 u$ R
#define InvisibleInit 0% t/ c, p" ]4 G+ z# m$ W
9 h: _( S! b+ a1 s% j/ B然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
. `2 |6 |8 P0 h呼叫設定函數* n/ z+ W% ^" y, q" E' z! t- k
ex: n: ^' ~* {% c0 p0 F! }
BYTE InviIniVal(EVENT event,BYTE SetVal)& P7 D' B- R8 ^) S( ?* K
{! j1 U W, y$ f; p, i# i# l, S- n
//Deal event ...
8 M) O t% B1 y; d$ I- r1 R0 X5 o# _1 A! y
//Deal InitVal
- n" ~6 \: |# FBYTE ret = 0;3 P3 G4 b6 i" A# `* x
SetVal+=InvisibleInit;
2 h5 u7 c0 W+ t9 C& Vret += SetVal ;) Q. ~6 o0 m0 u6 e
return ret;
. ~) _1 h+ k3 z8 v+ |% M! B+ M} 6 X. `: }, N: G, ?- o- r
" ?- |8 r6 i2 d" u6 @0 `最後關切的函數當然是遞減函數:
\0 H) u- |% _. vex:
. l$ u' W% t9 u% H: c' FBYTE DecInviVal(BYTE *InviVal)8 a" z. P$ b+ q, E: I' U
{0 a5 o9 \; l/ O: v2 w# ^
cout<<*InviVal<<endl;
9 ~, [2 P* ?5 ]5 n. E+ H+ v( d* a3 y(*InviVal)--; //*InviVal -= DecVal;' I7 ]& e/ H% F U2 A
cout<<*InviVal<<endl;
- Z I N' c! [. }3 g6 _(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
+ ^ F0 O$ {0 `4 n0 Qreturn *InviVal;
- K( G; ~ p& c& V* I' B; Q}0 T- E/ E! o7 b/ W6 O0 ~7 z
2 d' q1 a3 _% f" o, t) Q9 W$ K* W針對以上觀念,改遊戲就很簡單,
+ B( y: |# Q" s0 \8 Q一開始我們先初始化數值,輸入'?',
8 B0 `* ~6 @* P8 k接著開始無敵時,輸入'+',, ] d4 I" P- V' |9 [3 R
接著我們知道無敵時間會開始變動,
& n! M. J- u) J: s. J以上例來說時間開始減少,每隔一段時間輸入'-',; ]9 ^# G7 X* w
最後沒有無敵效果了,輸入'!' 或是 '0'。3 F5 @% h# L6 w3 }; Y
' X7 X) K5 ]3 U* L2 }- A
記憶體地址經由演算法篩選後,只會剩下幾個,6 `; J9 _/ \/ J( q+ M
try 一下,你要的地址就出現了。
4 w, A4 {) `, m7 ~, V/ A( C& m! n2 S- S
P.S.以上程式已經Run過,沒有問題。
) a3 S* N0 g8 f* o1 u" x. ]! C) o4 }- E+ N( }6 L1 U
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|