|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
! |& @' I* P2 Q主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
w4 M# M Q# {9 r, r5 y8 Z9 x" x2 F& ~9 m' p
其實修改無敵很容易,4 V9 W: M% K( c/ U/ D+ q/ o% q
就以遊戲程式設計的觀點來說,& Y3 f+ m4 H9 x& C1 P2 @
一開始我會將人物無敵數值設定為0( o: P4 d4 b3 [
ex: " R' A) S* N& [! M8 c
#define InvisibleInit 0; A1 O: o! g/ W9 t0 v& W' `* p6 p( v
# w2 S' z4 \% y6 W7 v5 G+ \然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),+ y! [$ C- [. _ ?
呼叫設定函數. f5 X- t2 }$ a4 {5 @
ex:( q) y2 l1 f: x$ \* f% u9 e! t, F
BYTE InviIniVal(EVENT event,BYTE SetVal)- w8 V6 O9 y. D m' b4 f
{
, R% e8 y* m+ X* F. u//Deal event ...1 E2 R/ S |: b. i7 @
# P# Z) ^' x* ~$ v
//Deal InitVal
2 ~9 G/ t) j" sBYTE ret = 0;
' G5 K+ L2 Y v/ u0 {3 F$ HSetVal+=InvisibleInit;! E, }/ u/ B5 i" g1 Y: X6 o$ A8 W
ret += SetVal ;
1 f7 s/ a9 E. Xreturn ret;
7 g x' Q5 V- D( [$ {) \# [} % c; @8 H/ G0 i* h
4 Y4 v$ x$ b1 `: b
最後關切的函數當然是遞減函數:& J0 }( O1 ~6 K. t, D8 x* p
ex:1 C6 Y; b3 {6 Z& q
BYTE DecInviVal(BYTE *InviVal)5 e* N) k" A2 R# H# f9 o2 G# ?8 z5 @
{
( o4 e4 u) b% }" S$ Wcout<<*InviVal<<endl;+ G" Z% r+ T# ^! V; `
(*InviVal)--; //*InviVal -= DecVal;
6 I1 E) v8 t e- ~cout<<*InviVal<<endl;
) f3 N e9 J! H& G, P4 M3 x(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
0 w+ O" m s5 areturn *InviVal;
4 T& }* g% T% e& Y5 A; |9 F}
7 _+ P. F% w7 ^* b: A9 R% R8 b4 @' z) d
針對以上觀念,改遊戲就很簡單,
E% k' G" [7 n8 U9 T8 I" e一開始我們先初始化數值,輸入'?',: ]" I2 k g8 s& Y1 k
接著開始無敵時,輸入'+',
/ [8 P& Y3 L2 l P, f( y; B' G接著我們知道無敵時間會開始變動,% y% P0 J7 @, ?2 _4 X
以上例來說時間開始減少,每隔一段時間輸入'-',
5 g5 P" @3 W- T" p0 u最後沒有無敵效果了,輸入'!' 或是 '0'。
" j1 t& l, {2 I: D1 t# X4 z
0 h! Z! m9 ~, a# `% g) C- L& d9 f6 R記憶體地址經由演算法篩選後,只會剩下幾個,# v2 E: v+ A* N3 Y+ r7 G& K
try 一下,你要的地址就出現了。
9 C4 y7 N, w( i
. C- q3 h# P1 g" w! I) W6 `P.S.以上程式已經Run過,沒有問題。
3 j, c- O& O R$ I: ^* f& X
5 z/ E) x, u$ f- d( b. j) M# F[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|