|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 3 o6 [1 |7 L5 ]7 g9 }! l
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 $ S- U) c! Z1 b9 B% ~7 ]" D
- n1 U. S0 q3 C& Z7 f: C- B/ G其實修改無敵很容易, h" r8 a8 ]5 ?& {* ?
就以遊戲程式設計的觀點來說,2 J% ~0 d, H/ o+ G- q
一開始我會將人物無敵數值設定為0/ X: _( p9 F& c( ^' G& K8 i
ex:
7 [( g# S8 {5 u3 k5 h( X5 e#define InvisibleInit 04 w1 N% I# e% T8 ?+ W: v4 f) Y; T
* Q# f9 E! [/ X, c1 N然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),5 i7 y% \1 M( i) d
呼叫設定函數
; E1 P1 q" y; {4 k# o/ D# xex:. o. y' `) m! F: m( q6 Z
BYTE InviIniVal(EVENT event,BYTE SetVal)
! G+ X0 g: K& A! V u{
: t5 O& X, s, g( t' q% |" S//Deal event ...
. _8 v! L1 c$ H
; _" K% e+ v$ x; Q' l, U7 J( `//Deal InitVal
+ N5 a$ j' |9 E, Q0 W( |6 gBYTE ret = 0;7 S" s1 p6 |" K1 [( @/ _8 J
SetVal+=InvisibleInit;4 v/ L0 P0 `9 G! }+ i( G& O
ret += SetVal ;& D9 T# q6 b2 j+ l$ i- W3 c
return ret;
: ]6 B2 p6 s# e% g. q: q} # I& }8 S8 H5 j) }& \/ M
: M' I$ H' p' x0 v8 h, I最後關切的函數當然是遞減函數:
) s5 d5 ^+ ^; c1 Zex:
8 T8 f+ ?/ L2 @BYTE DecInviVal(BYTE *InviVal)! q2 @! q* j' q, U
{
/ _% t* W( i+ J3 G3 M- ]cout<<*InviVal<<endl;% _; s, ^0 H9 l3 ^ ?
(*InviVal)--; //*InviVal -= DecVal;' J7 {+ k* e/ ~# l
cout<<*InviVal<<endl;
: k, j. g3 ?+ E: m$ I" h( S( `+ ](*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;7 P( s8 h; m3 j# P3 P' [+ v& {6 ~
return *InviVal;
2 k. L4 _1 Y$ f; N" z} Z2 r5 B2 [' b) _7 b- R/ w# R
# w" i- \: {3 a, P/ `! g! K針對以上觀念,改遊戲就很簡單,2 u, O3 P. ]' q& F1 B+ j
一開始我們先初始化數值,輸入'?',: i2 Q9 u5 _% J) B: p4 M
接著開始無敵時,輸入'+',
* o' d, `1 ^( m0 I/ [接著我們知道無敵時間會開始變動,
' |' g9 u( `5 M) ?% r( t* S以上例來說時間開始減少,每隔一段時間輸入'-',' _# x) _& p) Z$ t! g# c
最後沒有無敵效果了,輸入'!' 或是 '0'。
. Y5 K8 }" q7 [& i) C& j7 |
! k! v+ a7 |3 `3 A+ M% q記憶體地址經由演算法篩選後,只會剩下幾個,. G. F0 ]' \* R; d7 T
try 一下,你要的地址就出現了。, M p1 G# e0 A3 A/ |
- P6 z F, \4 z& Y7 ?: r, q
P.S.以上程式已經Run過,沒有問題。. \' r f# i1 A6 o' }0 a
! Q2 K( }0 L, f; I# F
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|