|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
0 E. F9 d- [+ p: Z主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 + X1 D9 H2 h+ C& A
! \' }+ X1 P2 |3 m* S! A
其實修改無敵很容易,
" {% a* f+ @3 X1 p2 K, m0 L) s就以遊戲程式設計的觀點來說,* m; O+ p5 j D' P' G; ~
一開始我會將人物無敵數值設定為0; W- d; F5 Z7 q7 N' H, ?5 l4 m
ex: : x: W) D; Y& s W1 N# ^6 Q3 K# T
#define InvisibleInit 0
6 G$ D0 [" F# U
! t" q" l# i1 `1 V6 T然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),$ n9 H) r. S" h, h1 G& F
呼叫設定函數5 K8 Q- g. c" U' {+ v; O
ex:& g" [& H' R5 l
BYTE InviIniVal(EVENT event,BYTE SetVal)5 @* o+ ]# b1 b& n3 P. h2 [
{
6 m+ D, P/ s* o: q, g//Deal event ...
( ?0 r A# N* X9 W+ t0 E+ I; F* n' n* `3 ~! D' l/ M8 C7 a
//Deal InitVal
0 ]# D" k' S9 z$ l M1 BBYTE ret = 0;5 e& b/ |9 k: D: |4 L" S( _
SetVal+=InvisibleInit;
7 ]9 ~4 R" Q! x$ D/ Uret += SetVal ;+ ~$ ~9 l' G) L) d0 U
return ret;8 q; Y: B, ^, X
}
# s7 ^1 T/ {+ b9 `; [ s4 z/ F
: C8 w) v+ u1 K/ W# r最後關切的函數當然是遞減函數:
% J9 ?; j# s) _( oex:8 c$ \3 _' a" _$ t! j
BYTE DecInviVal(BYTE *InviVal)
% @- [0 n {' e8 ^* j{5 g4 ^. x) E- m# E: t3 d. z
cout<<*InviVal<<endl;
% x' t2 _: F' T0 b8 O: e: i(*InviVal)--; //*InviVal -= DecVal;
" L5 c: X6 s6 ]. ] xcout<<*InviVal<<endl;$ x/ ]$ L; b- ^" F+ h$ q
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;# R( l( X+ J0 c
return *InviVal;
* [0 F4 e3 w% l9 N1 @6 _}0 _% a }2 H4 Z, D$ s# p3 W
5 C9 X4 r1 a% A1 V0 p3 ?( m$ n針對以上觀念,改遊戲就很簡單,
7 c& f. ~8 j Y% Y! A一開始我們先初始化數值,輸入'?',2 }3 T' K, E/ h) q
接著開始無敵時,輸入'+',7 U' y( e( K! k2 c: ? |
接著我們知道無敵時間會開始變動,
8 F4 G5 m' ~; }以上例來說時間開始減少,每隔一段時間輸入'-',( l. y1 `3 p. G& u. J6 _
最後沒有無敵效果了,輸入'!' 或是 '0'。6 r5 t; D! n4 D" J; A2 w; R/ }
, J- h }* S3 ^$ V* _記憶體地址經由演算法篩選後,只會剩下幾個,
" h4 b/ |6 l, s- b' C) r! Mtry 一下,你要的地址就出現了。2 P; Q3 K! d: o5 U7 M: t. b- I3 `
, o5 c$ y: k5 i& I
P.S.以上程式已經Run過,沒有問題。
4 h1 i5 w1 a$ W% ?, ]! G( c9 r+ q& j
% ?$ P$ a9 `+ g; k[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|