|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 0 [4 I8 I8 E0 B$ n9 {" M- T
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
2 e. O/ h) s% ~6 A, a5 I7 A3 _- p, V. t
其實修改無敵很容易,1 G0 y9 }, B: d) p
就以遊戲程式設計的觀點來說,
a3 U3 u- D3 r一開始我會將人物無敵數值設定為0
- r) y& e3 ^. I7 O/ Jex: ' e9 H( i+ U7 ~, f/ [- }4 g
#define InvisibleInit 0! f. I7 m2 o! M, A- y# L
5 p% f2 l4 }% l- f! q/ d然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
1 O t8 o$ C# T呼叫設定函數" D" t; v1 s1 z; e+ Q
ex:, z5 o6 V& r2 P& g& Y9 N! H
BYTE InviIniVal(EVENT event,BYTE SetVal)
! E. ?9 x. u: b: h0 z7 }& g: Z8 Y% a4 [{
3 ^5 j2 u: t5 u( I$ P/ {+ C. u//Deal event ...
! I; x v& _' W5 ~5 W* M. D" @$ g! a' Q [8 L% t( \' V
//Deal InitVal" _) A9 w8 _3 Y
BYTE ret = 0;
% `& F: e! N- E' RSetVal+=InvisibleInit;6 s* N1 m* b$ o, }. R. F
ret += SetVal ;5 s5 b G/ M M$ |# F
return ret;
7 M# y8 m+ L/ V/ H7 `2 B}
# N. z% o) Q) I5 v. c% b# J" N* O+ A# ^* v; b ]1 N* i( y
最後關切的函數當然是遞減函數:
, J. v& C$ m' W) h* }ex:
# _% P/ D5 a0 x5 k8 r _$ z" I7 ], dBYTE DecInviVal(BYTE *InviVal)- k5 y5 W \3 G( y
{
: f6 Y/ C# y" y6 ~# R! B! O3 d3 |5 }cout<<*InviVal<<endl;7 v! ]& J8 J; W* H
(*InviVal)--; //*InviVal -= DecVal;
0 W2 e- q. H O6 bcout<<*InviVal<<endl;" z9 j, Y: y1 @* k9 C
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;5 G& P X! m A3 }/ \5 ]: |* F6 T3 ?
return *InviVal;
3 R0 d @( [6 V+ b% l}- U" `' Q. e9 n0 U! ^
6 g# Y* D- D7 c& g" u9 O/ `- `
針對以上觀念,改遊戲就很簡單,) s+ \" o& ?( Y b6 Q& _9 j
一開始我們先初始化數值,輸入'?',
1 k% l# q; W! I( ^2 G$ o9 n% K) }接著開始無敵時,輸入'+',$ P0 { r% J' a
接著我們知道無敵時間會開始變動,
6 Z6 T5 j8 O! x8 n$ x1 O以上例來說時間開始減少,每隔一段時間輸入'-',
( F% c+ ]$ s2 f# p3 e; V最後沒有無敵效果了,輸入'!' 或是 '0'。
$ T6 t, K1 B! e4 g/ r9 T9 S+ `) h6 J7 i3 m
記憶體地址經由演算法篩選後,只會剩下幾個,
$ D; P) O9 Q" Ntry 一下,你要的地址就出現了。% R/ n# t: g6 i8 B$ n3 t6 ~1 C( K
. d4 ^; E/ Y: F" oP.S.以上程式已經Run過,沒有問題。
; ?) q5 h$ U( g6 j4 N& J5 v7 m/ K* x. |9 F6 o" X
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|