|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
9 q: g! y/ U' \- X3 \7 \主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 . c" F, u5 z6 n8 F0 U3 N
4 Z- I$ p0 M+ a+ `$ m: M" _- o
其實修改無敵很容易,- U) e: @9 H' u7 ?% F$ |# I
就以遊戲程式設計的觀點來說,
1 p" q3 U# z! f3 e* ]) U: r$ n; r( Q一開始我會將人物無敵數值設定為0& f7 z/ e: D& f' W% f- B
ex: ( J( I+ m" k: R7 A
#define InvisibleInit 0
. l @( g' P! _' N* _
3 t N3 {; ?6 a% J7 _; A: E6 z' i6 G然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),9 Q1 L, c/ d: W) L# d9 c0 @
呼叫設定函數$ f7 Q+ i* I# m/ y% T- w1 I
ex:
# a( b* M- H) H0 V4 Y+ x: Z$ iBYTE InviIniVal(EVENT event,BYTE SetVal)3 t8 y Y3 l6 I: m+ M1 Z- c% h
{9 ?! q! C. K" r8 N% h; [# J
//Deal event ...4 D. |+ {7 q e
( b9 y* U! |. u( i//Deal InitVal
% f' R/ C8 \& Y3 @! x8 j9 J. P" YBYTE ret = 0;! u1 j' v- c! S8 @
SetVal+=InvisibleInit;
, |) m# O W. w% _* Lret += SetVal ;
# R2 Z% L3 p1 F, g3 J# xreturn ret;
) o s7 n: Y2 v$ w8 r}
* A2 a2 R+ k, G! p$ F- j+ u# E: `3 L2 i# p% B, e
最後關切的函數當然是遞減函數:
5 v3 {" B% a9 C& T( [& F0 Mex:
$ i2 K' a% N) u! y) Y& I- F. ~BYTE DecInviVal(BYTE *InviVal)2 r; V6 N' S4 @ V7 q! J1 L! k
{; p" Q9 u) d4 W% a3 Y7 H; } ]
cout<<*InviVal<<endl;/ t" R; Q) @' R; l9 x, W
(*InviVal)--; //*InviVal -= DecVal;# q/ p, _, G* }, Z3 y% l& d& D1 y
cout<<*InviVal<<endl;0 `) s s" I5 U" A5 E1 A* F
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
4 i2 u3 F/ C) l) H- Xreturn *InviVal;
* u9 E$ Q9 r- C}
% l: O* b! M+ K" p- n
- R4 r) u4 i& K0 c4 b5 F針對以上觀念,改遊戲就很簡單,
0 S b) ?+ i2 ~$ h' A" H一開始我們先初始化數值,輸入'?',
6 R2 h$ O; D/ U' X* q接著開始無敵時,輸入'+',
$ r, Q: K! n5 D接著我們知道無敵時間會開始變動,
8 Z: n8 T& k2 T. \! @! D) t% T: b以上例來說時間開始減少,每隔一段時間輸入'-',
& W4 d) e/ Q/ n9 b: F' w% N) O5 ]( M最後沒有無敵效果了,輸入'!' 或是 '0'。% H0 I) H. ~* t+ n. t4 X
4 u/ \0 {+ ~% r
記憶體地址經由演算法篩選後,只會剩下幾個,
$ x: F$ C9 h; D1 k. M" d5 a+ {try 一下,你要的地址就出現了。
: t4 X6 b7 q, b5 d( H" F, b0 C% | H) W: q) T: m# E, i
P.S.以上程式已經Run過,沒有問題。- s4 |) ?3 {, M7 _# l1 |
5 E8 t$ Q1 |4 u) c) l
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|