|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
5 ~9 i" h9 g4 ?5 H( d* j7 S- F主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
1 v1 D8 C) H$ i* J* r% h4 ~4 x3 a( K6 P+ F4 d% B
其實修改無敵很容易,
; O. ^% H5 e& d m* U就以遊戲程式設計的觀點來說,
) z. p9 ]9 T" Y& |+ l- e& ~6 L一開始我會將人物無敵數值設定為0
# ^. \. {& Q' w& r( \ex: / l9 S$ ]5 Z3 p2 _& V, a& d2 M. Q
#define InvisibleInit 0
$ F( s4 a' G W9 N; | E" @: ?- m9 c3 f& j+ N8 X
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),* o; S& I. m3 ]" g1 P8 s- Y
呼叫設定函數. h, t+ J) [0 w, X) h& e
ex:+ W" L0 I3 S: ?; e0 ~" l+ M
BYTE InviIniVal(EVENT event,BYTE SetVal)$ [0 G. I/ D3 V. q1 ~& V
{
" n/ l. c$ I# g% V( t//Deal event ...
/ r% \5 Y) S5 m1 e) F, F
3 E' H% ?0 j8 X% ^& J/ M9 h1 T//Deal InitVal* ~: }' a$ S% D+ G2 s! A
BYTE ret = 0;
k1 a6 |1 R& B* o; F, MSetVal+=InvisibleInit;0 C9 R: ]* O/ W0 t# @' ]: G* A
ret += SetVal ;, e, I. w2 R% B0 Z3 b& Z
return ret;
: T. D. G" ]7 G! t2 \}
5 K- x0 l/ ~* f: R; }! E
6 l+ C1 s# ~% h4 i8 j) W# n最後關切的函數當然是遞減函數:
2 O. E' P7 H" q: n8 b! n7 Yex:
2 H2 }2 A, \8 f8 l' X6 J% ?BYTE DecInviVal(BYTE *InviVal)" {$ |! g' i2 L: N8 N% y
{
5 D" z' s$ J9 Q& l6 i6 N8 ucout<<*InviVal<<endl;2 T7 E1 u$ b2 b; M
(*InviVal)--; //*InviVal -= DecVal;
4 e Q3 p C! jcout<<*InviVal<<endl;
- {4 F2 g! a) e |0 a# p, i(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
3 U, @; f' e5 u+ ?. Q; preturn *InviVal;
, @3 u5 w0 N }2 G' |}7 R( P @2 Z. }7 m K4 Y
9 s9 _8 B" k% @+ K; s針對以上觀念,改遊戲就很簡單,
2 G+ ?$ s0 i% u0 n# B一開始我們先初始化數值,輸入'?',
5 r% R7 p- n! ]接著開始無敵時,輸入'+',+ ^, P0 A) g m: O6 E# U: K3 }
接著我們知道無敵時間會開始變動,( G: C# z$ b2 R4 \# n
以上例來說時間開始減少,每隔一段時間輸入'-',
, F9 l$ Z, @8 C2 B. @最後沒有無敵效果了,輸入'!' 或是 '0'。
6 h8 N7 V% f/ `; j% S/ R6 m* j6 N" X& _0 k. R! }; F
記憶體地址經由演算法篩選後,只會剩下幾個," v& E" f, `/ D
try 一下,你要的地址就出現了。/ I6 |; E- @( S. k) @
9 a* p ^9 Q+ i1 Y% I+ J7 k: ]# B7 m
P.S.以上程式已經Run過,沒有問題。
: T: N* ]' B3 [ e& U- @
9 I3 u8 k1 _/ v. s; ^; s[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|