|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 3 ] A; I4 [$ o3 p6 B- b
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
& p8 ]3 V/ R D1 v; P+ k* x* c# D& Y* K- z+ h
其實修改無敵很容易,. v+ h! ?: B) g3 a8 P* i# A
就以遊戲程式設計的觀點來說,- q& W9 ]8 B9 k, k2 h0 ^1 }' X' u
一開始我會將人物無敵數值設定為0
$ B, z$ T( F1 \. m' s# Gex: N' D; p* g9 S
#define InvisibleInit 0* A4 v7 @/ Y8 w5 O
6 r5 b" H" Z9 J0 m9 v然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),- o) n" ~; H( C
呼叫設定函數
$ }% m* h5 O7 Cex:6 z: f' P6 R* M& b
BYTE InviIniVal(EVENT event,BYTE SetVal)
# K5 T' |8 J3 |. F( u. P) v{1 d) D& I. F/ u- n
//Deal event ...! L& K/ O5 q8 s; P5 g' Z/ g7 ]( a$ {
, s7 v1 M* Q6 _. e* w
//Deal InitVal
; U6 B X% X; W- e4 VBYTE ret = 0; Z+ ]5 \- z1 {' b# b7 ~5 _
SetVal+=InvisibleInit;0 _# }1 g: O6 Z5 r
ret += SetVal ;2 X7 @) r/ R) A! o% K) F
return ret;6 _0 e5 F; |9 B2 u4 e; T6 U
}
( f5 k, H1 v6 C5 m5 L) t# T* f5 Y# m8 u5 a9 T
最後關切的函數當然是遞減函數:
! L4 z q% h$ Y$ [ex:
3 E3 w! c( v2 ?( X. `: q$ o* }) oBYTE DecInviVal(BYTE *InviVal)1 T) |& D; Q) C: V/ R# _5 L1 I
{( P) V# J: o, A- O
cout<<*InviVal<<endl;
/ x5 h7 S' Z# B4 @" l- u! d& z) w(*InviVal)--; //*InviVal -= DecVal; D, M# I' B; r: X% J. _
cout<<*InviVal<<endl;
; l0 a a7 b" E6 p. k2 y(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
0 o z( `- S Ereturn *InviVal;
: Q4 K I4 b6 S. l; q* n}- V+ V, _$ Y4 D2 I' F
- Y* Z& S" K+ l& G& |針對以上觀念,改遊戲就很簡單,* w2 ?. e# I) y# k5 A
一開始我們先初始化數值,輸入'?',' R# W- f; H$ f0 \
接著開始無敵時,輸入'+',
; A; v6 _& E+ j0 _1 ~0 b& M, Z接著我們知道無敵時間會開始變動,
: l) x3 n1 j8 g以上例來說時間開始減少,每隔一段時間輸入'-',
7 ^/ `# l: n I3 G# e5 b4 ]6 o+ y5 F最後沒有無敵效果了,輸入'!' 或是 '0'。7 m. u( L' \% N) S: I0 P
% d3 C6 O- E+ q, g
記憶體地址經由演算法篩選後,只會剩下幾個,0 Z9 Y4 q9 A& E! H2 k' m4 n
try 一下,你要的地址就出現了。' k# s9 J2 N( h2 M! b5 e. l5 |1 @, f
! E9 H; U h; W) N4 X2 c& W8 T$ b! M
P.S.以上程式已經Run過,沒有問題。; B5 h' f6 O% V
4 [ \: b, G: m9 R4 w
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|