|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
: Y4 c) s# k* i J3 x9 i9 L主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
8 U# z5 ~! b; V. l/ s/ h: W/ x' } _% ]% P
其實修改無敵很容易, A7 F' `1 a0 ]% z& m0 J, A( @3 @
就以遊戲程式設計的觀點來說,
+ u- k/ Q) {7 J$ c; B6 p( l一開始我會將人物無敵數值設定為0
0 W" G& D* R/ h) C% x5 Xex:
! s. c$ f, R( A% q3 Y2 |#define InvisibleInit 0+ U0 u+ f# e1 d( S3 H" K1 Y c
% `, Q) B+ J; k2 s
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),: n0 t/ C$ P! N( h' A9 `
呼叫設定函數
. ?* x; m% c+ j6 Y6 B0 e1 u$ V$ g" R& D! }ex:: z o9 t7 ~5 O$ r# ~! @
BYTE InviIniVal(EVENT event,BYTE SetVal)
/ q, X8 w# y6 Q% P* z9 x: a" Y{) K! M% m, j6 B6 j
//Deal event ...
" U5 ]0 ~, O/ P! Q# x z( A: Q& f( c1 J4 U9 Y
//Deal InitVal0 f; I- g. ` S# Z9 v7 H
BYTE ret = 0;# g7 B& `: r( B! A: { Z
SetVal+=InvisibleInit;
: B# c; T, R( Pret += SetVal ;
4 c& y0 l9 p. r6 s m; j+ a$ p* D5 ?return ret;" G3 n. w, X, y
} ' i3 O# A2 ~" w7 w. ^
! k0 ^) x* H) e0 u0 x最後關切的函數當然是遞減函數:' G9 e( @( E. e9 K
ex:
* t* g7 P, F8 _2 K& g) N. eBYTE DecInviVal(BYTE *InviVal)/ ~9 A( }- ^2 {( K! d( w' v9 A
{
, U, k0 L* p8 u6 ~$ F2 b" acout<<*InviVal<<endl;
: e1 e+ d0 z/ X7 `5 N# S8 `(*InviVal)--; //*InviVal -= DecVal;
I8 A' a0 n( C7 l' mcout<<*InviVal<<endl;$ m. v/ l) r: l
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;) g2 |4 o: }7 z/ D7 c" ^- b# v
return *InviVal;* B, T! Y& m m/ \2 w3 e* @ Y
}
3 u1 z6 G- H e: h8 ?
( D) j+ t6 l% ?$ s; z針對以上觀念,改遊戲就很簡單,1 E3 N: E% S' g# B4 @! `5 Q& j
一開始我們先初始化數值,輸入'?', c7 Y# P. m0 s% f
接著開始無敵時,輸入'+',! I3 _' u+ I; h; B" _# Q
接著我們知道無敵時間會開始變動,* X. [, U/ |& X) {) E* O
以上例來說時間開始減少,每隔一段時間輸入'-',
, _ E$ y, c) T" U+ f最後沒有無敵效果了,輸入'!' 或是 '0'。% ?* `+ i" Z1 o2 n" b- L5 I! K1 O5 u9 J
& o. }7 x5 B- `) j+ v% [
記憶體地址經由演算法篩選後,只會剩下幾個,( N( W4 M+ O( \& U. ?
try 一下,你要的地址就出現了。
5 |% t; B' |' K6 h! u4 u2 S- n6 Q8 u. D6 s: W4 I
P.S.以上程式已經Run過,沒有問題。+ J- K6 r+ q5 o1 S% A1 ~ Q& x
$ q2 q* _2 a+ f# j[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|