|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
6 @2 @7 _* \1 }% ]( d" [# E. P主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
) A* H$ S& f( v" ?9 r, G
$ \! M. j3 | F# R) b4 G其實修改無敵很容易,3 d# K7 }5 s% f
就以遊戲程式設計的觀點來說,
' b% L) X2 h J A一開始我會將人物無敵數值設定為0
3 e, x/ z- v: ]2 p8 O- I# A; Sex: 4 L) U. b, m5 n, i
#define InvisibleInit 0
8 o' {' o, ?. Y4 m
. _0 P! K3 Z( K0 l! [- ]% K然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),5 e. q& s- F2 [! c% [; K
呼叫設定函數$ e3 U3 U ]7 _8 [1 Y
ex:3 w- J) |2 i6 L
BYTE InviIniVal(EVENT event,BYTE SetVal)
% e8 E4 z& n; P$ w- R& s{$ N' F; {5 i0 u4 A5 z1 s4 E" d
//Deal event ...
% h* R( a9 w: t7 j
+ f+ t7 x9 w9 ~& A! E$ X* G3 Y% W: Z//Deal InitVal
! [# i: T" q* V& {9 G0 A, DBYTE ret = 0;+ D. _. V% j O8 K/ G) z
SetVal+=InvisibleInit;) J3 U) j, H# Q- `) I: P6 q" q
ret += SetVal ;
: x+ T! E3 O4 Qreturn ret;
+ E$ v7 D% f' \: t; e& l}
+ \ Z* q. B* ~* U) U l
* f; ?9 v& [4 F- @! {( A; b最後關切的函數當然是遞減函數:
8 U5 K" F( y9 m* {5 I9 \ex:0 e+ p: ]! ^+ }4 f; C
BYTE DecInviVal(BYTE *InviVal)$ I, B! b! ^6 x
{
& P; [; X4 }/ w) x& Ocout<<*InviVal<<endl;
5 w/ w/ a) G1 I$ O(*InviVal)--; //*InviVal -= DecVal;
4 s$ U: f r1 u; y! n( ^! [1 E2 hcout<<*InviVal<<endl;$ c) i; u' a5 `3 H. C6 v
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;# I m5 g6 B" O& i g
return *InviVal;
9 v& S# ~4 X+ q# t k}
9 }6 m$ r7 Q9 c
4 \% L7 S4 c% M4 W) b- g( P針對以上觀念,改遊戲就很簡單,- v* Z ?) [! T+ S2 T9 ~
一開始我們先初始化數值,輸入'?',
& J3 m& V' O7 q0 i$ p- A9 [2 o% X接著開始無敵時,輸入'+',
3 ?6 X, N, ^' o1 P, d6 e6 H接著我們知道無敵時間會開始變動,
7 M% z% {+ ]* `" j+ @以上例來說時間開始減少,每隔一段時間輸入'-',9 m* v A0 n. S) I0 u
最後沒有無敵效果了,輸入'!' 或是 '0'。6 Y+ J: J2 n6 ]1 L: F: |' A
: c" d! H; a5 ?5 d6 X' f
記憶體地址經由演算法篩選後,只會剩下幾個,0 K! r- T; M# A1 t
try 一下,你要的地址就出現了。
% T( P0 b! \) |4 X
6 [0 u( v4 U. v/ ]# h9 e# G: n1 nP.S.以上程式已經Run過,沒有問題。
! @8 V& I6 {! x. J* v
5 E* S! {8 C7 j* h P8 V. M( U[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|