|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 # Y6 K4 E7 |& P* d" ?+ I. D" A
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
1 R8 O. Z w, K0 `$ L5 ~( m' c% ~% q8 g& b! w" X5 O7 l$ }' R
其實修改無敵很容易,
8 B5 ?0 m2 f& f. r1 f就以遊戲程式設計的觀點來說,
4 O" o7 p2 J& O2 O一開始我會將人物無敵數值設定為0* ^! j4 l& q" {% w. J- r
ex: + \. O* F- w8 z( y' ?/ m$ \# Y8 ?
#define InvisibleInit 0/ v. m* T* F/ L, p g( v* o7 Z
3 P! h# P, U6 B- \* r
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
: J( ?* |( U G+ ]8 M- |4 x呼叫設定函數
, a# m4 p7 Q9 I- pex:" O9 t% Q: H' P0 R- Q
BYTE InviIniVal(EVENT event,BYTE SetVal)
) |4 m6 \5 ^. f$ `5 x{) O! J; c$ p. Q
//Deal event ...: t9 O' R# l8 g' X
" }# i: g$ m4 s, |5 i: b/ o
//Deal InitVal" m2 Y9 A1 g% `
BYTE ret = 0;, ~+ r: r" d' l1 I, {
SetVal+=InvisibleInit;9 g8 _6 a% q/ d+ B6 T N# T
ret += SetVal ;# t/ s1 s7 m! J! @
return ret;# F5 u9 B% f5 S; H7 C/ c4 S5 d
} ' x! n, c6 ?# x9 E& l" [
& O+ P( B1 W# g" \& b& b( H& ]* l
最後關切的函數當然是遞減函數:, ]3 w. m0 `, Y) I
ex:
% }/ a8 R; z; K1 r+ eBYTE DecInviVal(BYTE *InviVal): t! W6 _5 P5 i" G+ I7 w3 ?
{" M6 W; V3 h; Z) u& K- i
cout<<*InviVal<<endl;
) \. g( T8 N+ H- X+ p- t, y; N6 f. g(*InviVal)--; //*InviVal -= DecVal;
' S, Y8 F+ ?0 E) bcout<<*InviVal<<endl;
5 J% |& L, `9 u(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;. U$ K: |- C4 ?1 c" g' l. W% X' u
return *InviVal;; E1 }/ B, r. D. |
}6 p1 g% g9 u% w2 b2 l! _3 Z
/ d2 k" F, D7 @
針對以上觀念,改遊戲就很簡單,
! H' P: z9 m# k1 U8 z3 I; [一開始我們先初始化數值,輸入'?',3 Q+ }, O- F D; h$ e, g+ J' f- h) a' L
接著開始無敵時,輸入'+',
5 o& [/ R: Z6 ^8 A8 i, @1 g; D接著我們知道無敵時間會開始變動,: j9 h$ K, V/ r' b& h: X, [' Q. C
以上例來說時間開始減少,每隔一段時間輸入'-',( x0 l8 p, i% |, K7 R9 z1 V
最後沒有無敵效果了,輸入'!' 或是 '0'。) J( K" z9 _+ u8 \% k
9 l2 S9 ?6 q: G: R; A `' b) h. b
記憶體地址經由演算法篩選後,只會剩下幾個,; x$ L. x+ s( Y ~" C$ D' _
try 一下,你要的地址就出現了。) K3 C; c% a- {
0 `) L/ @/ c0 a( f3 BP.S.以上程式已經Run過,沒有問題。
) O4 p4 s2 y/ N5 L" ~, V6 O
5 |# C+ ~6 u A" E[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|