|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 . y: h, O9 M4 a: s" Y! e& U' b
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 2 q' P' h5 ]6 y' @" E! l6 `
4 n2 G% k' ~$ O# G$ X( w其實修改無敵很容易,! z/ y. K& w- K: T9 D
就以遊戲程式設計的觀點來說,) f5 J6 [5 q: S4 R( `
一開始我會將人物無敵數值設定為0
( e8 a, ?2 [9 L' D& V$ Bex:
& U% _* q' \- F, [) h$ t, _5 F#define InvisibleInit 06 f+ t' [8 Y7 G. K/ X# g
3 T* A! I" I3 u/ m$ ]1 ~' k然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
& V2 s0 w! L; ~( R: z6 s$ a呼叫設定函數( Q# V% n+ Q+ y3 }4 i5 W4 s
ex:( S9 Q% \+ h/ j) Z( X3 X
BYTE InviIniVal(EVENT event,BYTE SetVal)
2 J3 J& m, G+ O{$ m" D. x. C. N. g. J
//Deal event ...0 F2 f$ a" H$ T6 S
) G( s, I. e e! V! ^: |
//Deal InitVal* Z# X4 X) v% }( @4 B* z& ^
BYTE ret = 0;
, } [) S6 `" A3 C% i0 G7 zSetVal+=InvisibleInit;
- o! G% D5 Z4 j. Cret += SetVal ;" B1 w5 {9 i r' u" C( o
return ret;+ o6 x) P: \" s2 }" [+ [
} 0 N/ k; ?6 u2 {9 C7 J, b
: ]: f7 d- B6 {$ t& X/ ] ^最後關切的函數當然是遞減函數:
* V6 d$ ^( C Z$ fex:
& G# Y5 }9 H& B3 J" y# W) }! RBYTE DecInviVal(BYTE *InviVal)
# Q, I6 {% g, l3 f& Q{+ }/ `$ p- z" Z3 K
cout<<*InviVal<<endl;
* M) M' z# S' d) H* b(*InviVal)--; //*InviVal -= DecVal;
. L" z) Y3 I( H' S8 C1 D3 f" Ccout<<*InviVal<<endl;) T0 ? p; [# O/ T; R
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ; f+ @- `2 e0 a& X1 N$ F6 |* r
return *InviVal;. B# Z5 ~) }! f k% h# ?4 m' x, b
}6 }4 O0 J) H0 O% G+ U& H
2 z& Q% `% g& O
針對以上觀念,改遊戲就很簡單,
* W) O9 p9 L, I/ g一開始我們先初始化數值,輸入'?',
& q- `& ^: R5 h6 ]+ W接著開始無敵時,輸入'+',2 y7 l+ l+ S+ o7 ~0 j1 O$ w
接著我們知道無敵時間會開始變動,- Z* y( Q7 x$ Q3 E7 u, t
以上例來說時間開始減少,每隔一段時間輸入'-',0 X# D+ w" I5 I" i: o% p
最後沒有無敵效果了,輸入'!' 或是 '0'。" J% a; {0 u7 R9 y- t
! w0 I$ v9 I) }: x. C$ ~$ v9 ~# p記憶體地址經由演算法篩選後,只會剩下幾個,. e0 \1 f# h; c8 y1 f, f
try 一下,你要的地址就出現了。2 \) u$ c' ~3 u! u {2 j# m
# l! y/ w, v$ P% g; f1 S. L: B3 r+ g
P.S.以上程式已經Run過,沒有問題。
/ E7 [" T& R$ i0 l* E& w3 p, x
! v- P! [7 g' r$ Z* }, a+ j8 [[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|