|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
1 t1 m8 T! w6 f' c9 V) ~. s3 \主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 5 i Y$ m' G. Q1 v" O9 h! h
. \/ {* C0 @( t- g; n' S其實修改無敵很容易,
. ?" z8 r3 p8 j; u I1 q就以遊戲程式設計的觀點來說,
* w+ t* B% c2 J- }/ S6 j1 P一開始我會將人物無敵數值設定為0, g3 J8 z. `3 f) E: }# Y- a
ex: . h! d) s/ |" M: ?* V N
#define InvisibleInit 0
3 L2 O8 E) [4 l7 t; G% r" v# Z3 Z
# s( V5 H4 h0 x; z2 \9 W2 R1 c3 m然後當觸發特定事件,例如受到敵方攻擊(物件碰撞)," \- D: A$ A4 k4 l5 U7 f/ h+ G
呼叫設定函數& H! Y0 r+ @ ? I
ex:+ _) R5 L) \0 F- X" O/ Y
BYTE InviIniVal(EVENT event,BYTE SetVal)
- }+ C8 b) S D7 V4 d{2 J6 }& x- D- Q$ e! Q6 r- [3 ]" x
//Deal event ...
2 _6 L7 ]& Z. e( H) |, G( i6 M( l: D; s% D- U' @( P/ j2 X
//Deal InitVal6 f# l5 {' t* c3 Q. C# z
BYTE ret = 0;
, X8 N8 c; E! Y7 ZSetVal+=InvisibleInit;* k# r; P& ^$ y0 j' Z
ret += SetVal ;( |* w, z) p" R: Q5 u2 q4 b
return ret;
# L. P; N" _$ e: I, D}
4 v% M/ i! H2 F9 L% m' U5 L5 o& W
/ R* y: y( h; W7 n1 V, g最後關切的函數當然是遞減函數:0 Z# N/ V7 H/ I7 e) H! j
ex:
+ j: }# T2 G) E0 D4 F; _! jBYTE DecInviVal(BYTE *InviVal)
2 Z ~4 N( E1 H1 ?7 x* J{
1 R# m7 t2 Q4 ?7 Qcout<<*InviVal<<endl;# k+ ~6 Z# W) B0 T! s1 y- Y" x
(*InviVal)--; //*InviVal -= DecVal;4 _3 o8 }5 T5 ]2 V4 q. X% f
cout<<*InviVal<<endl;
+ p5 t+ F8 ` d }; E1 Z k5 w# {(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;7 W7 C1 u8 \4 a; P* @0 J! g
return *InviVal;
$ }4 \: e: U0 Q( _' J}2 V. x/ Q4 O- x
* f+ T: S1 \: C ]
針對以上觀念,改遊戲就很簡單,
! x |* W" ~" c0 R# U9 g Y一開始我們先初始化數值,輸入'?',
% F2 X* _4 |2 p, {7 U接著開始無敵時,輸入'+',1 m0 @- N' }, B; [8 N' N
接著我們知道無敵時間會開始變動,
4 U2 z& Y( ?/ o7 t* \以上例來說時間開始減少,每隔一段時間輸入'-',
: N/ i) j4 t% @' `2 D最後沒有無敵效果了,輸入'!' 或是 '0'。
: G1 |6 Q& D0 @* C9 p
, C. d6 \( h) y6 F( G9 C記憶體地址經由演算法篩選後,只會剩下幾個,2 B7 A8 Q1 z6 w
try 一下,你要的地址就出現了。$ S% a0 T7 F: l# {* j, a& f
& o2 @- b% g( t! H* n
P.S.以上程式已經Run過,沒有問題。! R+ g8 ~2 W" g* x: E9 k/ m, k* r
% R* N2 w: e" j7 ?. ^' b8 X
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|