|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
, K6 u% ?9 R" J6 K5 U4 c主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 , R$ S2 q6 M c) U7 ?2 e
5 H7 T- A1 c, X6 n其實修改無敵很容易," E1 j$ L# }, L2 ^8 I. r% g
就以遊戲程式設計的觀點來說,
5 k2 b4 [0 u6 k# ~9 j一開始我會將人物無敵數值設定為0 C9 a7 N! O- U y" M' s- C6 k
ex: ( C4 J, z6 X1 C; R( R
#define InvisibleInit 0
% b4 {8 P3 b' t8 B3 S7 i* [4 I; P1 I
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),; m! z- A4 z3 O) t
呼叫設定函數
. ]: g" \( W0 H$ n/ n0 sex:! a' k7 m( q' n
BYTE InviIniVal(EVENT event,BYTE SetVal)
6 n' o% V+ e! Y% f B{- R G5 ^5 [% ^6 h9 M
//Deal event ...
" k w- ] q. w8 C; E' O0 W& G
( i7 T2 j: o. a9 I//Deal InitVal% d9 L, k/ u* R+ A' \
BYTE ret = 0;
+ r! w* T6 K% U$ r9 m2 @3 ASetVal+=InvisibleInit;
4 K& p) y% @$ v) ?! v9 gret += SetVal ;
& w' M9 Q1 Q; m p. dreturn ret;& @. T% b' _* S6 n! }0 O! |
} ( T" q6 Q2 ~8 q* T; o; N
: ~! B$ u7 ]) X/ ^最後關切的函數當然是遞減函數:4 z' `; E! s8 H
ex:/ _9 l1 q# I6 E; X2 ~( g
BYTE DecInviVal(BYTE *InviVal)0 w2 O6 r3 p; N2 b# j9 f
{
6 t: i4 \ I% j; ?8 r& Icout<<*InviVal<<endl;
# ?+ X( \( C1 w- Q! D/ k' S- O( S(*InviVal)--; //*InviVal -= DecVal;
# ~, i, f2 O0 l* ?cout<<*InviVal<<endl;5 e, e' g$ O- [
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;2 \; A; d. C) w1 D9 m6 s
return *InviVal;: T# J1 m: m! C n% f& U$ U" k$ w5 m, _
}
0 d7 H9 h1 j+ `8 n* |1 z" H4 ?+ `! F Z) Q% C3 L- g L/ g
針對以上觀念,改遊戲就很簡單,
: ^- k, t2 O4 M. g一開始我們先初始化數值,輸入'?',
. C' k- [7 w5 ?- y接著開始無敵時,輸入'+',8 l8 G+ O/ v0 Y4 z' w+ F
接著我們知道無敵時間會開始變動,6 s' S% x+ C# L
以上例來說時間開始減少,每隔一段時間輸入'-',/ S/ @ h. D+ D# B
最後沒有無敵效果了,輸入'!' 或是 '0'。
, T/ u" m- Y8 L. m# O) t D$ Y; `4 f" y, y3 h
記憶體地址經由演算法篩選後,只會剩下幾個,7 K: L+ o3 F+ x
try 一下,你要的地址就出現了。
' j2 ~8 q# K% b, G9 j3 Z- W5 O2 X6 ~+ s8 j
P.S.以上程式已經Run過,沒有問題。
6 q/ b: ]3 i: ]; Q+ ^ E' ?$ B+ G. w% }! m X% m. h
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|