|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
; u3 ]) Q% D% N: D& N" u主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
) e* Y5 h; k8 H/ [/ O" P& c+ o: l; R' `6 ^; k2 [' V
其實修改無敵很容易,. F9 j" \- _ J4 y5 b
就以遊戲程式設計的觀點來說,
4 V% L- J2 }6 w! H, x一開始我會將人物無敵數值設定為0
8 \. c5 L4 a) d" c. C) K0 Q2 sex: $ ?. m2 u' Y& G, \5 D$ V% Y
#define InvisibleInit 0: _ u6 d% f4 I3 o" ?9 \+ b7 ]
0 Y; d1 E2 p2 u9 Y4 U, q
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
& q) I; s- Y' M! z T, e呼叫設定函數
- ?" H7 o# z/ L/ K0 P* Yex:
/ v! `8 ^0 A( D4 [! `BYTE InviIniVal(EVENT event,BYTE SetVal)
8 N8 B) _( ]: @( b+ j; s1 V f! M- R{
- ]0 G+ t$ R1 h o5 K) m//Deal event ...
2 [$ J: ]5 k* k7 V' t' b
1 f) }5 E7 p8 Q% X: O" h" S, B//Deal InitVal
& E5 o' ]" f4 e8 z4 K$ ]3 ^1 \, S; UBYTE ret = 0;
! j" Z [2 u1 o5 X" A4 T8 ?SetVal+=InvisibleInit;7 r/ }) R# o) g p- q" G
ret += SetVal ;. Y4 B. t) ~- u$ r& r1 v
return ret;
; b5 A7 }2 c% M* r$ E0 V3 z}
8 U( s( @* z _ y, Y0 h4 g3 t. e8 }1 I& d h) J
最後關切的函數當然是遞減函數:0 N9 j5 ~" M1 ~1 N
ex:: G3 M: y8 a& i- P; E
BYTE DecInviVal(BYTE *InviVal)
$ V" B3 Y/ d5 ]; X5 r+ D{- Y2 ~6 Q7 V. d, {# D; `2 |# H1 V
cout<<*InviVal<<endl;
, O- n4 M" t* u3 o S(*InviVal)--; //*InviVal -= DecVal;
{- ]8 F% z, F+ r( {: Hcout<<*InviVal<<endl;
) n$ I$ H& v$ E0 B(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;2 y0 w: O+ O0 B: h: c. P* c
return *InviVal;
! s2 {6 {* ^4 [ l$ t% X6 u/ ]}
6 ? ~6 \3 A1 N O! y4 W" e
7 _1 Z; j& M |9 d7 t5 t9 {針對以上觀念,改遊戲就很簡單,
; F0 v: T1 c4 y6 s一開始我們先初始化數值,輸入'?',$ x l6 {4 s5 d
接著開始無敵時,輸入'+',
- B4 W# J# d. G8 L5 O接著我們知道無敵時間會開始變動,$ H& C# \. Z/ h! K- B+ c
以上例來說時間開始減少,每隔一段時間輸入'-',$ A0 E" u3 o/ O: D- O; w
最後沒有無敵效果了,輸入'!' 或是 '0'。, J6 V! _( x& y) s* a: t% t
/ y7 s6 X% W( i6 u記憶體地址經由演算法篩選後,只會剩下幾個,7 Q+ l# u1 m# c3 D% r, }
try 一下,你要的地址就出現了。 K( E3 l" E- M% z8 I. m
5 _6 n1 y( A/ v
P.S.以上程式已經Run過,沒有問題。
7 h: G d& |3 ]- }8 H$ I5 E: _( c' e
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|