|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
* J Q0 O* S$ s. C3 W/ z" n1 G主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ; w0 ^1 X: K, F. ^ a
! s9 h2 A; W ~9 R
其實修改無敵很容易,) t7 I6 c2 n$ h2 X7 m; D4 Y% i
就以遊戲程式設計的觀點來說,
8 U7 a( u6 G. p+ x一開始我會將人物無敵數值設定為03 @+ c6 T# |+ b, V) B* T
ex: % r" @9 |0 J5 ? }+ g
#define InvisibleInit 0
1 Q, S8 [: Z n4 l+ L: b& n+ a8 t( m" b7 ]
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
& X, U8 }$ I+ j7 U* u l& c; Z, S呼叫設定函數/ x- r+ P! e& ]' G
ex:
~# |! }$ R. _' OBYTE InviIniVal(EVENT event,BYTE SetVal)
2 B- I9 b( }9 I6 F; i* r7 r5 l M{
( H4 g$ r2 |# t% Z" C: z7 U2 B# |//Deal event ... p1 R2 E2 {2 Y
) V! l' b- c2 ]9 v1 b5 S' A//Deal InitVal
% T6 z+ [8 x; [- x$ `) x) jBYTE ret = 0;; K7 v% U/ A/ ^( D, S( A
SetVal+=InvisibleInit; p5 g* X& G9 N7 O3 I% p) h
ret += SetVal ;
: g2 p) s5 o3 x. S& Mreturn ret;: W6 E2 g, m) |1 P1 l$ A. e/ `
} 4 W4 z9 o- y# L2 [% ~$ O" ~$ u
8 Q$ f( w( ^$ ]+ i
最後關切的函數當然是遞減函數:. U* G# o5 x: J( D
ex:4 q0 X( o; B/ i, N4 l8 e
BYTE DecInviVal(BYTE *InviVal)! U, N0 b- j6 u( E
{3 z- I- b5 I3 F! g- e
cout<<*InviVal<<endl;
- ] ]- u- E% X2 ]5 e* N! ?(*InviVal)--; //*InviVal -= DecVal;
1 L- j1 J+ d" m9 S: K1 acout<<*InviVal<<endl;: ~0 u1 b! d- d4 e( v
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;9 k8 p; H- i5 A/ d" O- E1 n
return *InviVal;% Z% j- y1 y8 n# U- d* A
}9 m [7 L6 {4 t5 X8 q/ f+ i
1 K$ Q. d: m- ]/ L: h7 x& P' K8 D6 T針對以上觀念,改遊戲就很簡單,
/ i: j5 b# |$ |3 y一開始我們先初始化數值,輸入'?',: G& }' l9 t2 M2 V! w1 P- x: l
接著開始無敵時,輸入'+',
9 u+ M0 C. x4 }: G8 K( d接著我們知道無敵時間會開始變動,
+ I% G9 z( v/ w8 N以上例來說時間開始減少,每隔一段時間輸入'-',
# p$ t g2 y. a8 s2 v. r最後沒有無敵效果了,輸入'!' 或是 '0'。- B# m- `& W/ Y2 v u
/ f0 R B$ R! ^' I/ W* s; e
記憶體地址經由演算法篩選後,只會剩下幾個,3 ~& D6 h: J: a, M, n
try 一下,你要的地址就出現了。& u+ o6 q' b- M; H9 H1 \
# x0 s/ {* b5 ?6 t9 B! Z- |P.S.以上程式已經Run過,沒有問題。3 [7 s; X9 k6 t" f
! j6 Y. B! \% U: A[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|