|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
0 Y8 K6 N0 n. i; e- \) P主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
. `. L3 r/ ?( o& v6 y h4 ^( R% A3 S% ]# A o
其實修改無敵很容易,5 m/ M" x. d7 e* _- V. t9 `
就以遊戲程式設計的觀點來說,# |+ B k# P: j1 y. L6 P9 C, p; O
一開始我會將人物無敵數值設定為0
1 K: w5 ]5 z, {& R) x, C* ^( wex:
2 I* E2 i# R5 `: P: A% k$ s#define InvisibleInit 0$ Q& Q7 n/ `9 N# C2 N6 T4 D
" x4 [; E5 b) B
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
' x4 P* x" C5 o8 h2 a% _呼叫設定函數
4 V7 \! \. u! _5 ^8 n6 {& Oex:# h9 n* q! }( k% h+ H
BYTE InviIniVal(EVENT event,BYTE SetVal)
6 z' P# G$ q& ~2 `. p{* D3 i; S- \- p& y3 A( s* R
//Deal event ...$ l1 V% R P8 ]4 y% M2 {
! T7 T' ]4 G, D5 Z9 D9 {/ K4 T//Deal InitVal
/ l. N+ Q0 _& `- k+ h8 j+ P- ^BYTE ret = 0;
9 p0 ?, O. K [% ~% r/ |: X6 R5 oSetVal+=InvisibleInit;& B3 p* c/ N8 o
ret += SetVal ;
: u) v& s! S3 R- Q( Y+ Y# S" V! ^ ireturn ret;6 T) F3 n$ s4 m" t
}
. \0 u9 w8 v3 I7 @. L) H! O5 p0 j4 V% i4 h1 ?8 @
最後關切的函數當然是遞減函數:
8 M8 O t7 N( `* y+ h$ V9 lex: ]1 `/ D3 d8 ]: p" e8 z
BYTE DecInviVal(BYTE *InviVal)" x ^. q* Z$ a
{
5 u( A9 I6 [" x1 ~9 S% A& Q' ncout<<*InviVal<<endl;
8 J4 `0 g6 v7 f(*InviVal)--; //*InviVal -= DecVal;
1 K: D4 K8 M7 `& W0 fcout<<*InviVal<<endl;7 l; W, b/ G3 u: j, d' F+ r
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;! E* y u+ m8 m ?$ W
return *InviVal;. K) n# _5 f! ?: M' } B6 t4 r
}; i6 X7 X, M" L, r8 H6 A. r: i
( @, V; j& O6 Y7 n, K2 ]# u3 ?
針對以上觀念,改遊戲就很簡單,
8 U5 L( P) l. Q' d一開始我們先初始化數值,輸入'?',
' C" A) R9 Y4 a. Y1 h" N接著開始無敵時,輸入'+',8 \# X; v+ ^# W7 h
接著我們知道無敵時間會開始變動,
2 e3 C& I- S2 L7 ?1 w2 M以上例來說時間開始減少,每隔一段時間輸入'-',
) }3 a7 o9 f2 z& [) l最後沒有無敵效果了,輸入'!' 或是 '0'。
( C+ G% p3 X. _9 w$ j8 L, f
0 k- S! j% y; Q' [! p5 X記憶體地址經由演算法篩選後,只會剩下幾個,
/ Z! ?5 B, l$ a, stry 一下,你要的地址就出現了。: G4 O7 J6 O. z) y+ O
* s! ]: `5 u" |P.S.以上程式已經Run過,沒有問題。2 j. j; U0 L- u# v" j
* @2 q) n H0 q' d0 G' E
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|