|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
9 Q9 g* g. S- c5 ]. I主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
2 \" W! B0 F: J. s- j, p
% |2 B# S2 z3 N, ]其實修改無敵很容易," S. T# ?% Z+ W. O% \; B
就以遊戲程式設計的觀點來說, S, s5 i, b4 o- K) l& N! \8 \, ?0 F
一開始我會將人物無敵數值設定為0
% Q% a# N- J" ]( G. Bex: / {* n1 c( D: n' w O$ Y
#define InvisibleInit 0
+ m1 O, ^2 Q3 X" z. W# O8 f* ~6 t3 e+ c
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
/ V1 L: U: O9 y, ?9 G) A! n呼叫設定函數1 p; R/ U6 {% k; u J1 ^) W
ex:* o! f! \8 P) ~: \/ p
BYTE InviIniVal(EVENT event,BYTE SetVal)
* O; B1 j, L- B. E5 h{1 c% }2 H/ R5 n: r- v/ `
//Deal event ...9 Y# D. ~+ z6 c2 Q
5 R% h5 y" W7 h+ ?9 D6 u8 L& h//Deal InitVal
1 ~: W! c( `5 I: Y6 M0 N( pBYTE ret = 0;& o% Y& x9 u w
SetVal+=InvisibleInit;4 g3 Q* D0 ?; k7 D6 _
ret += SetVal ;
- C# G, \ W$ P- K; W! x7 [return ret;. U; @* i4 R, L1 H- k
}
2 n5 s8 y" N0 N7 o/ ]7 |, _7 n. _7 _/ Z6 S0 z
最後關切的函數當然是遞減函數:# R& b( V6 P e. e1 r5 M
ex:. k4 v4 B0 @& T/ l- f8 I
BYTE DecInviVal(BYTE *InviVal)
+ o, U7 ^9 y5 i# n) P9 v" ~{' _7 O5 N0 d( H0 @
cout<<*InviVal<<endl;/ Y: W: n( H+ D, J+ d) m, o
(*InviVal)--; //*InviVal -= DecVal;0 S7 t$ C7 J, z# {* q O
cout<<*InviVal<<endl;
4 J) y: n. r' a* a: T! o0 A# T4 D& ~# ](*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
8 D+ t7 E9 K3 Preturn *InviVal;
* x. L M. m }8 g2 g}
$ F6 ?8 \, f- b5 o! y: j
" \5 `/ G2 a M" W, I* c$ S針對以上觀念,改遊戲就很簡單,$ g7 ]+ ^& n% c
一開始我們先初始化數值,輸入'?',
6 W4 v. R( l/ B接著開始無敵時,輸入'+',
* ?" O" r w' m3 |. E; }接著我們知道無敵時間會開始變動,; c$ _* r2 l1 K2 o! r
以上例來說時間開始減少,每隔一段時間輸入'-',
+ r, P9 L% d. @0 J2 a/ y( H0 _% U最後沒有無敵效果了,輸入'!' 或是 '0'。5 b. F' E' F ~- N6 b8 \' Q i
7 q+ K v- G- d( @8 ~' B* @ h" }& M( d
記憶體地址經由演算法篩選後,只會剩下幾個,
& f8 A9 W$ Z1 C. L$ H/ R; Etry 一下,你要的地址就出現了。
( j, E8 \3 k7 `* V
/ f9 _4 E! q! w5 \' UP.S.以上程式已經Run過,沒有問題。
6 r8 v! N2 @0 _- Q1 p8 @) b9 C4 r6 ~+ v6 ~3 H! o
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|