|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
9 _1 T2 ?" u% U) y& p主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 0 o% R3 Q4 Q- ^1 O) I, F1 ?* q- ~5 S
; T. r% @2 _" ~其實修改無敵很容易,5 p7 u. W# H) F$ @0 i X
就以遊戲程式設計的觀點來說,
^9 Z0 J) M# e) D4 c一開始我會將人物無敵數值設定為01 t3 G! K% s% E, W2 q3 r! Q
ex:
' m; _1 p0 S0 \0 m* m#define InvisibleInit 0
: u- Q v; Q6 l1 \. U8 `% X2 g6 v5 t3 b/ j/ L6 i
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),9 C2 ]) {' _2 r% F: x9 r
呼叫設定函數( a$ s$ R( i- N$ o) W$ F/ ^. }
ex:
2 I) n! s, Y8 t) w" ?BYTE InviIniVal(EVENT event,BYTE SetVal)
4 y5 b( G& k; S3 W, m; a/ ]# q{
) `+ N" O3 Y8 Y3 f$ _//Deal event ...
) E% w( j6 B1 j: e; h7 s( O+ x5 c9 `& z, o
//Deal InitVal) a3 C' @+ C/ @: q& M
BYTE ret = 0;8 H. J5 ^( |' f* K" q! g) \
SetVal+=InvisibleInit;
' t+ A+ u% }6 d1 iret += SetVal ;
/ \: }9 ^& j) O% x5 e4 @return ret;
( w: x% t% Y. @2 N9 a n; L} 5 ^: T$ n7 P2 n/ _" ]* x
5 U: A5 z' u/ b [& X! \% A
最後關切的函數當然是遞減函數:/ K) m9 |6 { O3 W7 |3 C/ r8 q/ T
ex:
& t# T! v# q2 n) nBYTE DecInviVal(BYTE *InviVal): a) V& i+ P9 M( a: v; n
{2 c+ D2 y1 Q A2 T" f# {. c
cout<<*InviVal<<endl;
! f0 R4 t: d# _3 N) l# r(*InviVal)--; //*InviVal -= DecVal;
" e/ e6 K, f' H+ D+ L S- W9 w ]cout<<*InviVal<<endl;5 _% W0 K* B- x3 s. G8 W1 A) Y/ B9 u
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;' z6 A$ W* j0 o7 d2 e
return *InviVal;
$ e. ?" ]7 S: O' Z" }1 G7 |0 z. b' ~}$ M% k, p1 _, M& S: v- R
9 s1 |+ j% l& U1 Z, j) t9 W. p( V4 c
針對以上觀念,改遊戲就很簡單,) \3 L8 z7 E7 i+ r0 u9 L
一開始我們先初始化數值,輸入'?',) O9 f, B0 Y4 O* j
接著開始無敵時,輸入'+',/ }* \* |: I! \$ L9 L* i! \
接著我們知道無敵時間會開始變動,$ v4 B. D2 n1 g" h. f( |
以上例來說時間開始減少,每隔一段時間輸入'-',+ { l; ^ H% M
最後沒有無敵效果了,輸入'!' 或是 '0'。
, X7 E0 {3 t) R$ N
( ^0 \# v1 d. T; Q# y% @' ~記憶體地址經由演算法篩選後,只會剩下幾個,
5 ~# M* R+ h/ R' ~' ptry 一下,你要的地址就出現了。
9 J- i4 A* X5 E5 }( R8 ^3 X1 ?4 G6 e2 b: F( l4 F6 }! i
P.S.以上程式已經Run過,沒有問題。" j' j2 T5 Y! b) v
& T6 B+ D% D! x/ h& O) N
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|