|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 ; M) x3 V0 p' E* M4 @
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 4 Y( v' H" I0 C1 Q
' H7 p* g, [5 x7 h+ Q5 D其實修改無敵很容易,
; A h; ^* R! ~+ n e就以遊戲程式設計的觀點來說,
8 `' H2 h! d. j+ p5 a7 G8 T一開始我會將人物無敵數值設定為04 I; X3 o) d Y- |; ]/ c& @
ex:
3 ^; F! D1 p H! _ u2 F) E$ D#define InvisibleInit 0; L9 I+ V1 ?6 R9 I. |
- j( G* W I; O' q然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
4 K) G$ G3 @$ M& F, I呼叫設定函數
8 _& }" W+ k& `7 F- o: Iex:
x% A& [; f9 ~0 a! Q5 lBYTE InviIniVal(EVENT event,BYTE SetVal)' `: E4 N! |; Q9 J9 x1 c" m! C
{/ Q) @4 B9 y/ W9 R
//Deal event ...
/ p: z( s; p* g4 l' T2 T4 \( _* K! d$ C* c
//Deal InitVal
9 X6 K ]) ^* f5 a7 ]) |BYTE ret = 0;
2 w; G+ D2 e' N2 hSetVal+=InvisibleInit;7 \3 f8 l+ f9 i1 g
ret += SetVal ;
4 R, _. M3 C9 I% k9 N, Y7 j2 \return ret;! K7 M6 t, X* H! b- f" K
}
. K V0 j( P# Z/ w- p1 U( O) ~* N0 x& b2 |. v
最後關切的函數當然是遞減函數:
, l( P3 D7 v+ x0 {: K/ w% p' Zex:
, g" x& Z0 O. o* w7 YBYTE DecInviVal(BYTE *InviVal)- u7 L5 Y0 t. |1 l! T
{
6 k& _0 Z4 M& A( s4 \0 o# Rcout<<*InviVal<<endl;
6 D! l0 w8 w; w' ^$ y2 p2 ?(*InviVal)--; //*InviVal -= DecVal;
2 y& q' _# B9 X9 B% _9 W8 Acout<<*InviVal<<endl;
- {- X! o' [ s: Z9 T% C: L P7 Q(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
8 K0 `" |, k# h8 x8 X+ greturn *InviVal;3 i& s7 h% G2 X
}# ~( s4 q& S: \, M: U. ?
3 x7 c) o; n& e
針對以上觀念,改遊戲就很簡單,4 v6 i* `0 O- T4 Q/ t; U
一開始我們先初始化數值,輸入'?',7 H5 M: s" u5 T( e1 t
接著開始無敵時,輸入'+',% {% w1 T: {9 G8 l
接著我們知道無敵時間會開始變動,7 ?3 e1 r4 g/ {% n5 M
以上例來說時間開始減少,每隔一段時間輸入'-',
; P4 ~$ K3 K2 Y" i9 e3 A最後沒有無敵效果了,輸入'!' 或是 '0'。8 p8 b9 q* c: C2 c
+ ]9 h+ z% U% }4 L) n記憶體地址經由演算法篩選後,只會剩下幾個,# o$ [4 Y2 P4 J# _
try 一下,你要的地址就出現了。, \ |! P; X# L' }* u% H K! z
/ J o: D I! C0 y; b# F
P.S.以上程式已經Run過,沒有問題。
" F/ M5 \4 }; X6 R/ K: x6 ?
; J: }) @2 U2 `8 t; t; a( ?[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|