|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
9 y+ q% t7 Q0 @' P主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 " O D* y: `# ?2 f3 _* w. M
5 Y y+ f5 j+ `6 Z( [( b/ R6 v其實修改無敵很容易,
6 i8 {# N9 b; q* q5 V6 a" ~( X, j就以遊戲程式設計的觀點來說,
8 S$ k$ @1 H. i: o一開始我會將人物無敵數值設定為06 T, ? A6 t* }! K4 j8 g" t- i1 A
ex:
% o7 ~4 m) O5 L#define InvisibleInit 0
* w6 Q" S; G0 _ f: z b+ }, o7 N
( W. r) m6 D/ Y- b7 v g1 p9 T0 x- e+ _然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
k0 R. S* n: g4 K3 M" G呼叫設定函數
) S1 ]4 A: N5 w, ?$ \+ ^ ~1 ?( qex:: t* p3 x1 a' Q( D: o' R" z5 M
BYTE InviIniVal(EVENT event,BYTE SetVal)
" F+ ~: w9 R1 g4 i, ?# l{
% R; m+ h% j* M: I7 u//Deal event ...9 w& K3 R7 Z I4 B
3 Y7 v: ^' Y8 G; j* k+ P% q: s- K. F//Deal InitVal
" j1 {# D' c# ~2 y! l! p! zBYTE ret = 0;; B; F& s* [% {" y: `9 M
SetVal+=InvisibleInit;( k% ?% A- H- a; P6 ~; N; n1 ~
ret += SetVal ;, S# s0 a v" d# R
return ret;
% w4 r7 b" |- i0 ?# Y3 J}
7 W2 \" X% b" Q9 j- U* Q% u) U& o# l( ]" S6 O
最後關切的函數當然是遞減函數:
& M; _9 e( ^, j: c) k8 Fex:
; T! q7 h: P. f! w3 H0 yBYTE DecInviVal(BYTE *InviVal); `) G1 i1 [# t/ J3 l# x S
{
* f0 \5 H$ t/ D* q* k4 Acout<<*InviVal<<endl;
$ ~6 E: ^6 I; P/ I* i* O(*InviVal)--; //*InviVal -= DecVal;0 W" q2 v& V. ?. f
cout<<*InviVal<<endl;
3 p0 F i h8 d! s2 o(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;8 r: C3 A: z5 |
return *InviVal;( |4 k; G+ [1 A8 q
}" m0 x. o3 Y1 I* x6 i
1 d) X1 \% K$ g& U- T) ?4 K
針對以上觀念,改遊戲就很簡單,0 R; I3 {) O# ~: N, j
一開始我們先初始化數值,輸入'?',6 P4 M, I$ V p" s# r' E
接著開始無敵時,輸入'+',- J6 f8 k+ j& D' M7 W" F9 O8 y* d
接著我們知道無敵時間會開始變動,% H, R% U' T: J, z
以上例來說時間開始減少,每隔一段時間輸入'-',
* z1 s# s- {9 T5 G( a D最後沒有無敵效果了,輸入'!' 或是 '0'。8 p' S7 r2 u, ?! S+ x
8 E% w2 {. s6 c; m- h記憶體地址經由演算法篩選後,只會剩下幾個,
+ F) F/ s/ Q7 o1 qtry 一下,你要的地址就出現了。
) `/ o4 Z3 W' }9 |" \8 @: F
# o' J6 R Y, |' y& D1 P. MP.S.以上程式已經Run過,沒有問題。
3 Z+ @, v! C9 M h' t+ D W0 N2 R/ `& w
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|