|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
' o; T0 M5 M5 a& k& ]0 w主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
. F5 S. B+ b# B4 B D- w* v7 T" y1 d0 U5 L5 G
其實修改無敵很容易," I6 A6 w* r% t, t5 U
就以遊戲程式設計的觀點來說,* p* T" U! @3 y
一開始我會將人物無敵數值設定為0/ f. ~* p% ~( k0 ?2 i
ex:
" S6 ~. e- u% @# g1 J% |$ `! I; \. e% o#define InvisibleInit 0, J6 W+ L- Y0 [2 i% P$ u
: D9 [, Q( u6 @2 k) o然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
) ^1 I" x# u" h# j呼叫設定函數
% K# n0 d8 f( i4 q4 F- Gex:4 A' c' W- y3 d% s1 z& b
BYTE InviIniVal(EVENT event,BYTE SetVal)
/ Z- [( s% [, N+ m6 I4 F{' f( u- r4 z5 N* ?
//Deal event ...
( W3 j. e4 x; ?& l0 D
j; P5 y: E+ u4 ^2 V- U) X//Deal InitVal- n4 R5 d+ W. d' r3 U
BYTE ret = 0;1 p/ T& f& c" |
SetVal+=InvisibleInit;
# N" E, @& M' v' gret += SetVal ;
+ k4 j, Q+ S: t. Dreturn ret;1 @9 W( ^4 _7 o( n. W T* S
} ( o! w7 m: v3 ~% Y
! ^6 s, D/ ~, z+ z最後關切的函數當然是遞減函數:, `; S o" _$ J% i4 M( I
ex:! K( H- M6 I1 t
BYTE DecInviVal(BYTE *InviVal)
' \+ ? ]/ D8 n( `* ?{/ |: j+ e/ K* G6 z# u1 ?+ u
cout<<*InviVal<<endl;
& M6 I: i3 r6 M2 c(*InviVal)--; //*InviVal -= DecVal;: F" X* z+ K; N2 Y9 {# V( H" }
cout<<*InviVal<<endl;5 g& [% u# U: W1 q4 W( Y9 @9 W; ?1 Z
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
% l* G4 l) j0 C# N' c2 _- x' }0 Hreturn *InviVal;- c4 O. w5 A3 C
}
$ A% k* x' [3 i- p0 t& C/ I$ r* ?% s/ I9 T
針對以上觀念,改遊戲就很簡單,) H) ~0 K+ F; u( r- o
一開始我們先初始化數值,輸入'?',
3 E" g# O! j( O( _7 }' _+ v8 ^接著開始無敵時,輸入'+',
: p! [+ L2 l- h& Z接著我們知道無敵時間會開始變動,/ b# N4 b) [: t9 [
以上例來說時間開始減少,每隔一段時間輸入'-'," I+ n, X7 V: D. z( n
最後沒有無敵效果了,輸入'!' 或是 '0'。, m+ g; w4 A& t
j. j- O. F% a4 I' u) Y6 a
記憶體地址經由演算法篩選後,只會剩下幾個,! i9 |/ K' `% d/ Z/ V; W
try 一下,你要的地址就出現了。
( G8 U. R* S- m' W2 n5 o: n4 F4 I; s1 s9 [* o, O8 k+ d
P.S.以上程式已經Run過,沒有問題。
% ^. d1 q* A. C2 E5 N/ J' O7 g" Z1 i, v* s* |
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|