|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
; K. U) U9 }3 m- h; s8 n7 B2 K主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
9 R. P! G) ^( t# n# F; ]( F3 P% W
- J0 _6 m7 ?0 z. g& z其實修改無敵很容易,
0 V+ L: x5 M% C/ k' `, C! _就以遊戲程式設計的觀點來說,
/ i, b' i4 Y! e0 X* E3 V, a' u& n一開始我會將人物無敵數值設定為0
# s& K4 v& m) J7 [7 s3 X2 l) |0 A j' wex:
U0 n* r7 j6 k5 ^: [( @#define InvisibleInit 03 [( b! G" |, u7 r$ ^
$ D( k- e: c* y* U3 h$ I0 s
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),. v- h3 _4 ?' I7 G) X( W. D
呼叫設定函數
# N& H* G u& R$ }( aex:+ g; V- f4 P+ L& ]3 x
BYTE InviIniVal(EVENT event,BYTE SetVal)
- T: l3 i& u1 Q! j$ I$ _! f{
9 F$ H+ c! D3 P% U8 {" L5 ^( [& ^) U//Deal event ...
9 {% K0 K& E/ `* g' m! b, Y; n' ?8 O0 K& D1 m8 Y
//Deal InitVal5 O6 F' b- M( t6 q
BYTE ret = 0;# u: F" _& V9 h) X0 r( d
SetVal+=InvisibleInit;
! D5 `+ b6 `5 @+ J; R* c- ^ret += SetVal ;
% \& P; b( S! rreturn ret;& G) h3 h& {. @# \( _
}
8 K# G. l7 w" G% x
& s2 T, z I5 y最後關切的函數當然是遞減函數:. V2 Y: d, S6 Q, g
ex:
' j* a/ `6 C6 k8 A% dBYTE DecInviVal(BYTE *InviVal)/ J8 b& V- @% U9 \: ?6 B
{
9 b0 G# I. j! G. R ?+ f" S7 Ocout<<*InviVal<<endl;
" ~$ s( R" r0 Q6 o6 n(*InviVal)--; //*InviVal -= DecVal;2 c9 }4 W9 C$ B1 p! l, i5 v0 _
cout<<*InviVal<<endl;
1 l3 D# o+ i' B(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
& A; R+ i1 e! G% ?" m* H; ireturn *InviVal;
% H: Z% g* t% a- d- K- {}/ h, }1 ?/ i( j0 k b2 u
T4 N! Y- z& _3 Z0 A6 Z2 I6 c針對以上觀念,改遊戲就很簡單,
$ Z$ u; X& R9 F) K# B7 F1 E) Q一開始我們先初始化數值,輸入'?',
8 c9 g# \) G+ t5 L. C0 |接著開始無敵時,輸入'+',1 j# L; b q$ u
接著我們知道無敵時間會開始變動,3 T7 D- X; S, s
以上例來說時間開始減少,每隔一段時間輸入'-',% l* S- x1 n- w2 s% L% h9 N3 d$ h& M
最後沒有無敵效果了,輸入'!' 或是 '0'。
0 k! f1 J4 J; z: N/ n" L8 e h6 x5 [4 ?0 t/ l7 W: j- x( z% P/ P
記憶體地址經由演算法篩選後,只會剩下幾個,+ {2 [! w U7 O! j+ @
try 一下,你要的地址就出現了。8 `% [: y2 w( L0 c' q7 h5 G
! ?5 }/ e0 J }1 a- q8 ~# b+ sP.S.以上程式已經Run過,沒有問題。, J# F, b! A5 W
/ |9 ^, {9 y# h1 K[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|