|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 - f+ _ n3 [6 Q1 w# ]
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 8 h/ M. `) c& e" ^# s- z6 x
. x# h9 S4 }5 t, ]/ s. A其實修改無敵很容易,
- \% y! g; |& X1 ^6 Q$ a# m6 b就以遊戲程式設計的觀點來說,/ p' v3 z% q; m7 W1 L) ]
一開始我會將人物無敵數值設定為0; x* C( ]3 b. M ~- d" Y
ex: 0 r& B% B. R! T# a; V
#define InvisibleInit 0
% u) v8 R2 }. {8 n# _* W! O' J5 R) C6 G3 H$ U9 d0 n
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),3 F- F( X; J0 R- J# c/ X1 q
呼叫設定函數
7 p( _* A5 d% {ex:. _- ^. H, K: j% P. a5 U
BYTE InviIniVal(EVENT event,BYTE SetVal)' m8 c. S8 B+ F$ J
{& j! Y8 C) _2 J: A
//Deal event .... e8 }" Y' Y$ W9 V3 R, P
: ^2 ~% C, E m2 x, e$ b+ _7 N) v
//Deal InitVal4 q% i& a' n- K$ ^
BYTE ret = 0;3 O* X' K. W( H' b) V5 [" ^6 x
SetVal+=InvisibleInit;
' X' P! d/ |2 A3 ]ret += SetVal ;6 O" | _5 ?+ A* D9 C
return ret;
" y$ |: K- G& S' B" k}
# f5 }) i8 A, R7 X% {2 y m. y' y% u' X4 i/ }: h
最後關切的函數當然是遞減函數:
. G( [7 e( }/ @/ Q+ lex:
/ B8 m, W R A" K" UBYTE DecInviVal(BYTE *InviVal)* H" @2 s8 @7 G7 A1 w
{
0 [$ |2 D% x0 G5 q) tcout<<*InviVal<<endl;
- i0 R; o/ D/ x5 f1 ^ K4 A6 Y(*InviVal)--; //*InviVal -= DecVal;
( H4 [# b' r! s# k icout<<*InviVal<<endl;
" Q7 w& ^( i" G+ q8 _, V8 ](*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
9 b1 G8 G% ~; X( P2 t+ m+ |) T2 j" ereturn *InviVal;# ^+ ?" a- v# z/ A0 H4 v$ M! ~
}: D( e" d2 y; Y+ j$ B
! w4 [3 B1 |% m5 J6 t+ T針對以上觀念,改遊戲就很簡單,
: v) n9 \1 x! p% y, k6 j一開始我們先初始化數值,輸入'?',4 c; B; r o# X+ N/ T& A) \
接著開始無敵時,輸入'+',# ~( E+ ]& X4 {" f
接著我們知道無敵時間會開始變動,
/ Z3 K" u1 ]1 V" H% e+ y' {4 Q( h$ n6 k R以上例來說時間開始減少,每隔一段時間輸入'-',
) {' W4 C+ K' m7 N. ]! D, R最後沒有無敵效果了,輸入'!' 或是 '0'。! K: ~) r& u7 B2 _0 V2 e
( b4 Y# k4 v5 Q; i# t$ D
記憶體地址經由演算法篩選後,只會剩下幾個,3 e+ w: Y4 T1 O& H
try 一下,你要的地址就出現了。( e1 r% \8 H6 @
; ]2 l5 Y1 Q& g3 `$ a1 K* I2 gP.S.以上程式已經Run過,沒有問題。7 q2 _: o2 R+ l
. h6 J' S J! f4 A[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|