|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
: }; I2 d; W) u( ~3 W+ w主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
! e* Z' r6 B1 {7 n3 ^- g6 a( y9 `# g- I
其實修改無敵很容易,
( m4 B" D4 t3 H" g: Z$ W' n) N0 ?就以遊戲程式設計的觀點來說,, m! m8 i6 _1 i0 D( O4 X( H J/ Y
一開始我會將人物無敵數值設定為03 L* u6 _2 W% U
ex: : [! P. l0 j9 e7 W+ y
#define InvisibleInit 0) v. \% Q0 r$ q0 M3 t( a
0 v. k: {# q0 W5 i0 y# M M4 P1 ~然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
0 h1 C# G% c8 N呼叫設定函數
3 L2 n' t' J3 S, Nex:! D6 n/ G4 }" O4 Y3 h% W' f
BYTE InviIniVal(EVENT event,BYTE SetVal)6 y, g$ w$ _( c# j+ f
{
4 a l" h' M7 R# x//Deal event ..., t/ q* g" T+ o/ U2 W
) p* {. ^. u7 L6 m//Deal InitVal/ e7 g& h( s- _7 [
BYTE ret = 0;
* T2 A( i5 `3 ESetVal+=InvisibleInit;% C _8 l( ~. ]# V3 n6 I' ^) [: N
ret += SetVal ;
) a4 e$ l9 J& P3 r4 s1 ureturn ret;4 z( ~& E/ W/ Y' {1 i$ A
}
3 |% W" Y. T+ U7 O8 `; I% I. k" ~9 z! q" M
最後關切的函數當然是遞減函數:( o) W/ m6 e% H5 h4 z, ^
ex:( f6 I; C- u& S3 f `
BYTE DecInviVal(BYTE *InviVal)& u9 T4 e& k6 l
{/ a& u. y+ l; V" S' M
cout<<*InviVal<<endl;9 T" a4 F( V; _
(*InviVal)--; //*InviVal -= DecVal;7 F/ l/ f" O8 H" s
cout<<*InviVal<<endl;7 H4 t0 C; G' k' m' q
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
e- w" ^8 H( {- s% areturn *InviVal;7 l- s! R; Z0 A7 L
}
0 L: C( d& t+ d: j' [. o
. M4 i+ Y! o0 @+ {4 t針對以上觀念,改遊戲就很簡單,
4 m. n/ ], |& k7 P; r: R7 @一開始我們先初始化數值,輸入'?',
/ h( G4 Z! W6 ?+ `: T" x1 k接著開始無敵時,輸入'+',# h) d2 d2 _% @
接著我們知道無敵時間會開始變動,3 U1 K) r9 j7 q3 y [ l# d
以上例來說時間開始減少,每隔一段時間輸入'-',
* X0 I8 @0 z! p4 t' H最後沒有無敵效果了,輸入'!' 或是 '0'。: {# l* N# c% S+ r) O' c3 b! e
; u+ _( s& X) R t+ ]: z8 E記憶體地址經由演算法篩選後,只會剩下幾個,& |# q5 w" {3 F+ u; X
try 一下,你要的地址就出現了。$ I6 e- [# @. q; t% A! g9 Q
. z4 i) L( F; r4 A3 H# @3 O5 e1 i1 |
P.S.以上程式已經Run過,沒有問題。
( u, u, [6 f6 o% c L2 o8 P9 t
1 [3 h$ O9 e9 L$ m[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|