|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 " @) E9 x% @. _5 N& C8 j' R
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 5 G, D; j! y, P/ c, K' K/ F
. y. a' k. t3 y7 U; E1 b
其實修改無敵很容易,
Y5 q7 E: ]4 O8 Z$ F$ \就以遊戲程式設計的觀點來說,4 E* v& R N( M' ^" ^
一開始我會將人物無敵數值設定為09 [- H: y9 q$ x" n5 m
ex:
" K' Z' z1 b0 G( @: G#define InvisibleInit 0+ G5 {1 h( A6 j. }5 e' H
( y2 F3 S1 T& B6 G4 D& Y" d+ }然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),2 E) l4 R# v7 A5 u
呼叫設定函數
+ D" i* d7 _* G0 C1 E! zex:% ^% ^! H6 y) x, G' P* ^
BYTE InviIniVal(EVENT event,BYTE SetVal)
) ^ K" s( p ]. ]: m" H# E{9 d3 n$ E6 ^% \6 B/ m
//Deal event ...% j( u' h* i1 l% C" Z
( A* H( e5 ~; p1 ?# M$ Y% @//Deal InitVal
7 m# ?) g E, `) t3 dBYTE ret = 0;9 ?8 w9 o& u' p/ a
SetVal+=InvisibleInit;, z3 V K$ y; |% n# ^5 d( ?
ret += SetVal ;
1 e) y3 Y3 ]6 i; ^ B, R, nreturn ret;2 N. e* u/ v, |, t" B4 L: ?! j. N
}
3 ], T# Z' ]1 r% u. T9 R
" n! f3 R1 o1 Q7 ~7 O& g最後關切的函數當然是遞減函數:- n: R0 r4 S( O" X* `
ex:8 O! u# F! S* D8 q- v
BYTE DecInviVal(BYTE *InviVal)! j6 S8 f+ b6 i
{9 x: s6 H. ^/ B" ]+ ~ s* j
cout<<*InviVal<<endl;
4 v( P: E; }0 g5 X/ R9 g" P(*InviVal)--; //*InviVal -= DecVal;0 ^" n* k) E- O! N. w4 }
cout<<*InviVal<<endl;: ?) q% ^* b8 j% j/ ~
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;* C& Z( y4 Z/ S# W+ d& }
return *InviVal;
0 H3 T; E4 b* b# T/ C" K8 G' r}* |( s# ^* w0 C! U+ g$ N% g9 J3 c: K
5 i8 r8 A3 p6 }
針對以上觀念,改遊戲就很簡單,
P) U) T5 R- j& O1 E一開始我們先初始化數值,輸入'?',! k/ Q- p! l8 L* t
接著開始無敵時,輸入'+',$ x' L$ ]0 X h
接著我們知道無敵時間會開始變動,
1 l0 p! `# ?& n以上例來說時間開始減少,每隔一段時間輸入'-'," B9 w& f+ d+ [) |8 t
最後沒有無敵效果了,輸入'!' 或是 '0'。3 j& l/ U! p6 S v! t% L @
5 f8 a9 F+ z8 L8 `6 J9 U" ^, ?記憶體地址經由演算法篩選後,只會剩下幾個,
' p1 v: _. u- a; b0 jtry 一下,你要的地址就出現了。+ o0 _* Z0 { f' T
" i1 f; r" m; w) L
P.S.以上程式已經Run過,沒有問題。# a0 T7 m ~. ]+ X* b
% f: t, o' W5 d* d$ e) G, C[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|