|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 * ^1 X6 X/ I/ q6 c
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 * }4 @7 s( i: ~7 U
]; {% H) G+ X6 c9 H1 V其實修改無敵很容易,( e0 h' d) V3 t5 Q3 k6 i& r
就以遊戲程式設計的觀點來說,
- I0 `$ H) c7 b5 {6 z. T+ |一開始我會將人物無敵數值設定為0
) I- j4 l1 }8 m% `ex:
. u! u9 L* Y" C, ~' \#define InvisibleInit 0
0 g& G% @, P: n( d6 o7 R- i$ F- H- l( i7 _, }& Q: A& i
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),1 Y5 F, t% B0 v& u( T: ?+ J9 \
呼叫設定函數
% n- F9 p' p2 l1 ~& x+ U: ~5 yex:/ ?3 G0 |" o" E6 N, K
BYTE InviIniVal(EVENT event,BYTE SetVal)
* f: V! I. z) u2 ?{
+ y) \/ h' D( ~! o% A//Deal event ...* f; N" L; Z! p6 Q1 d
; e, h' B7 n! X
//Deal InitVal: ]0 B. z$ r4 \* q/ {
BYTE ret = 0;
9 k# N) D- z9 f/ t j4 JSetVal+=InvisibleInit;
9 `( P& k% }" V2 b2 Sret += SetVal ;3 d9 \( Y/ m: i a
return ret;
7 I9 n8 S/ G8 s) ~: G" O# G6 b} ( t# X' _. K" k4 o
. g- H; ~- t/ R最後關切的函數當然是遞減函數:" H( y% |9 T) F6 S
ex:
, n; k& y8 M2 b+ t+ |; WBYTE DecInviVal(BYTE *InviVal)
! v3 G6 Y( ?3 p' H{ o2 P6 [6 A |+ P7 ]& d
cout<<*InviVal<<endl;
) j4 X8 `9 j. j$ F(*InviVal)--; //*InviVal -= DecVal;
7 x" p' W9 C% s! q# m$ @cout<<*InviVal<<endl;: e! g3 h# T0 ~3 M. O, H3 A9 g
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
' f6 i* Y* x( n" a$ Q( greturn *InviVal;- p8 t* h: U6 i/ S) G# S
}) q: m) n* R9 L1 h' W+ n" R2 z
' y; ~' B; n8 U( U# s7 A5 S4 r針對以上觀念,改遊戲就很簡單,
( O z4 |$ `; L2 s一開始我們先初始化數值,輸入'?',: ?+ n1 K/ f! M- j! e6 p6 `
接著開始無敵時,輸入'+',
( g2 j' ^, v' A* i) G接著我們知道無敵時間會開始變動,5 s8 m7 M+ a% d- h0 I4 j
以上例來說時間開始減少,每隔一段時間輸入'-',
0 A+ f- [1 C! {/ _: k4 N最後沒有無敵效果了,輸入'!' 或是 '0'。( r: E% G) m1 d" \8 U
* ?/ _+ m, @7 C7 D- v: R# R
記憶體地址經由演算法篩選後,只會剩下幾個,7 `2 }: l* r% B' G! B& D
try 一下,你要的地址就出現了。
/ a$ W3 g, Y. W& J
5 ]% N: Q" z* R" e: kP.S.以上程式已經Run過,沒有問題。+ a+ J8 F } \4 I
( M7 ?, `2 Q& Z/ a# R* l. J[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|