|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
" L) q& z3 X S主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
( I4 E- r) o1 G1 r+ ^% ~$ \5 i/ J0 I
其實修改無敵很容易,* h5 I" U/ M! u+ S6 ]" ~1 o
就以遊戲程式設計的觀點來說, E: i) }0 x( L0 o$ I+ {) r \
一開始我會將人物無敵數值設定為0
: w* d9 T( d" D5 S( x" Mex: 6 M. {- ?% l. C0 U# U- y
#define InvisibleInit 00 d" L5 M1 A4 Y' x& ]
: V: B- _( o, {) M: ~1 e
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
9 D$ k4 |3 e4 ?( a$ R呼叫設定函數/ C! X" s* P. s# u
ex:+ H) U+ Q/ g! [
BYTE InviIniVal(EVENT event,BYTE SetVal)
$ B: {1 C( q0 h% Z2 y" D# Q% e{9 k- f8 B' y( o8 E+ t1 F
//Deal event ...
; j3 v t# b7 a8 m4 L( \5 t
* i3 T4 S/ C( J% H//Deal InitVal# W6 T, E2 b7 Y, i# \
BYTE ret = 0;$ {: t: y. x! u4 o
SetVal+=InvisibleInit;9 ^! L8 N9 A5 c) B$ y2 v
ret += SetVal ;
( @" t4 P0 l: k9 V5 A# i+ x; C: z0 Qreturn ret;& Z& o- g2 y/ H& \2 E
}
9 T: y( u2 i- W# Q3 m8 s( F) f+ Q% j# D3 z3 w
最後關切的函數當然是遞減函數:
' N; e& x3 J/ Q1 ] wex:$ t0 x9 S- ^- r2 y) t
BYTE DecInviVal(BYTE *InviVal)
7 L z- Z/ ^" y4 U# L6 G! z{
8 L) s7 x8 h6 q0 ]: ccout<<*InviVal<<endl;+ q: g2 C0 E& o$ k
(*InviVal)--; //*InviVal -= DecVal;8 l8 ^6 p3 Z3 R
cout<<*InviVal<<endl;
- @9 e$ a, n$ N(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
9 P/ h6 w% C' zreturn *InviVal;' Z6 J- Q) @! k* h+ c: a. ? _/ E
}
1 A+ _ ]% D" p2 P" s* r' Q& B
: C- t: X- y+ |1 F& g針對以上觀念,改遊戲就很簡單,/ ?$ c P+ A. g% V! f* \' ^; y
一開始我們先初始化數值,輸入'?',: Z' A" n$ R. l& X B L/ p
接著開始無敵時,輸入'+',& B. ?6 o) n% c$ |8 \
接著我們知道無敵時間會開始變動,# a3 O. C8 i" O9 m8 t
以上例來說時間開始減少,每隔一段時間輸入'-',: S9 b4 R) V! ^5 D) H4 S
最後沒有無敵效果了,輸入'!' 或是 '0'。1 ?# y& M$ D& l i( l( S2 _7 y
% Y8 B. \; T) }% f2 m9 i8 h
記憶體地址經由演算法篩選後,只會剩下幾個,
' p. J' |& k. l% n: Z C& ntry 一下,你要的地址就出現了。
& R+ Y& f/ A) o( I+ c8 W8 Y: x0 e3 M3 j5 `
P.S.以上程式已經Run過,沒有問題。( X" E6 d2 ]5 |3 S$ C/ _& [
* K/ @0 ^! F' z* ~8 p% X: k h) o[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|