|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
. h/ j$ e- p# v* v' K- l9 {* d主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
% T4 h1 `4 ?5 W5 g
" G9 ~. E# o& D" V; O. V其實修改無敵很容易,) `1 H% o4 J; W
就以遊戲程式設計的觀點來說,
& m5 f& j- m1 @- W6 ]一開始我會將人物無敵數值設定為05 }0 i/ t% @. ]. u O5 b% ^
ex:
5 {/ ~8 y3 W, E) d* l1 B#define InvisibleInit 0" E2 @, \% n, ?
9 o' s4 j- W f! t8 g
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),; b/ v* R! i; k0 \; [$ j
呼叫設定函數
; w: \$ F$ K( w4 q9 Bex:: F3 {2 B" X# r# G* i7 K# ~
BYTE InviIniVal(EVENT event,BYTE SetVal)
$ `- f$ C/ d/ Q9 Q{5 E% y' b" D, O7 B+ d
//Deal event ...
" X* r6 X' {7 p) G( |2 y& S8 D4 n+ J6 ^/ k8 Z7 H
//Deal InitVal6 g, v- M! v, W0 ]8 f9 S3 v4 m- Y
BYTE ret = 0;0 B% E% h) Q" G! u. F
SetVal+=InvisibleInit;
3 B* Q1 D# _% ~ret += SetVal ;4 p6 h8 A1 @ `8 Y1 W1 z
return ret;6 z c# Y4 q* o- e) m! g
}
" G5 f/ W. P3 S3 p# w2 A+ T
% ` ~% X0 f9 m! e6 Q9 a. {最後關切的函數當然是遞減函數:# }; k# A' a; `+ W5 F
ex:
$ |$ _$ R# ~+ l! ZBYTE DecInviVal(BYTE *InviVal)/ q6 o0 t& x% e1 `3 G) [0 n
{, _' y; ?# A1 n
cout<<*InviVal<<endl;
n) J8 e& S9 u: G$ v7 Y, l4 m7 O(*InviVal)--; //*InviVal -= DecVal;1 a+ x! \- W. m7 B E& Y0 d' d
cout<<*InviVal<<endl;0 q5 O4 L9 T g5 G0 r- |5 l
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
5 ?% I# l8 x- y- N8 treturn *InviVal;/ \. `4 M0 |/ O3 \0 |
}8 E% c F) _% O
. \1 W% ?/ \! u/ m* V% p
針對以上觀念,改遊戲就很簡單,
" v' C& Y9 }3 l7 G/ ~6 t一開始我們先初始化數值,輸入'?',1 \* [- q$ V9 |8 {# f! R# f
接著開始無敵時,輸入'+',) }$ U1 {8 Y0 |: L( ~, G" e6 Z
接著我們知道無敵時間會開始變動,
& @1 e0 k6 k" }+ m, o* c4 Z以上例來說時間開始減少,每隔一段時間輸入'-',
' b! I7 T' N4 S# z最後沒有無敵效果了,輸入'!' 或是 '0'。9 v5 w' D6 p: r4 e% C
7 R" ^/ o$ I5 P& k' ]7 `記憶體地址經由演算法篩選後,只會剩下幾個,
3 P" u" k9 ^! q" D* S* gtry 一下,你要的地址就出現了。
0 x3 A4 q' B+ t/ l' s6 p$ |8 w# M3 k
P.S.以上程式已經Run過,沒有問題。
8 C4 c4 z8 W% h8 S8 N7 F# o7 S
9 E" \- S0 Y& l7 l' V* j1 k* Z0 [[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|