|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 & v% W7 j9 e* r4 V: n
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
: [- P4 i9 m8 q+ D- y! d
: K. [5 `' s( Z/ J6 G& P" b0 B其實修改無敵很容易,
( i$ _/ B7 Q) D5 I# K就以遊戲程式設計的觀點來說,/ l: b9 U) l$ n$ D
一開始我會將人物無敵數值設定為0
. G% O6 W1 Z9 M3 x% Eex: ' R7 j+ O! |2 W1 J% Q8 F
#define InvisibleInit 0
2 _$ _! i3 d) q- z/ D# O0 z$ w7 f% c# r- _7 V1 b O
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
. f$ Y$ q9 L! b8 m4 I9 ]呼叫設定函數
+ N7 \- I$ D$ V' ]. t" f& D& d8 h! i5 Eex:3 f# {8 D& a' x! b7 n9 {. u+ W
BYTE InviIniVal(EVENT event,BYTE SetVal)! C2 h0 ?$ d/ }; s' F/ }
{
/ Z4 o- W' U; j) L6 E* k3 K; B% F5 l//Deal event ...
6 l2 y8 ]# Y0 [) p/ G5 W5 b1 d e$ }; ^) s+ D, P- C
//Deal InitVal
! Z8 z1 g7 A O( ]BYTE ret = 0;
$ S+ y5 b. F5 n/ @# v, `SetVal+=InvisibleInit;
& a4 P) U3 K7 c# |* r3 Kret += SetVal ;
# k# {5 w( ?, \return ret;
8 G! Z+ G8 f& }0 d6 K0 ?0 v}
, g: _6 ]0 d* i4 Y- S! ~) d9 C( U3 v) ^, L7 T
最後關切的函數當然是遞減函數:+ h8 U# |6 I( c' B' G
ex:
2 p; ^$ Z T3 b' l7 R0 jBYTE DecInviVal(BYTE *InviVal)
! o. e b8 E i{
( S/ O8 a8 k# m9 ]cout<<*InviVal<<endl;
o0 d* ?9 I& K3 B(*InviVal)--; //*InviVal -= DecVal;
3 L7 c/ G( n- P6 Acout<<*InviVal<<endl;
" m% ` w5 T9 l) e/ h9 P+ Y0 f2 h(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;4 K" j& c/ E& P
return *InviVal;1 M% z0 U8 y8 ~. t
}
% s, ^5 C5 r: U& }4 @5 K4 X% ?5 Z0 r6 t
針對以上觀念,改遊戲就很簡單,4 c% ~% U4 i5 `- P- _+ Q
一開始我們先初始化數值,輸入'?',8 _2 ~# _, e- P- {
接著開始無敵時,輸入'+',# V* i/ r! d0 v y" E
接著我們知道無敵時間會開始變動,
# Y w* A) r. }2 n) }以上例來說時間開始減少,每隔一段時間輸入'-',. J. B% W7 n, N# L- W) w
最後沒有無敵效果了,輸入'!' 或是 '0'。
/ e8 \; M# _# O( m: R5 L; v% `( l+ b$ Z* N& H; z Q
記憶體地址經由演算法篩選後,只會剩下幾個,
/ p, h7 m# u# qtry 一下,你要的地址就出現了。- |4 ?8 x8 O- h p
( @/ `% a8 n8 U/ V+ P7 iP.S.以上程式已經Run過,沒有問題。
( K) n4 ]' Q" B2 h1 f; f# y9 D/ X2 j' c7 U9 R) X9 Y; ?
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|