|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 , N9 w+ m4 q! F: e5 `. ~5 O
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
/ |% B4 x2 o2 L2 g. r* \
2 P' Y- }6 x0 f- F其實修改無敵很容易,
* f+ C: \0 R1 Y0 m6 L8 x4 K2 w就以遊戲程式設計的觀點來說,! ^; u0 u, h' m. l" }
一開始我會將人物無敵數值設定為0
; V, T5 ^7 ^/ D; ?6 T. B- j# L* F( Iex: / r9 }0 G& a- J* i
#define InvisibleInit 0+ W& N; F; M* @: N
& B" |6 a. E! {) E; Q% n然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
3 n' s' u+ V4 Z( O% k( G7 ~呼叫設定函數) q' O1 T7 s$ R3 L. m) m' T+ ?2 v
ex:& V( ^" o7 X5 I8 K$ i
BYTE InviIniVal(EVENT event,BYTE SetVal)
; |4 U% t- q @8 @" k) U{$ A, P- _7 L) w7 K- R4 Q4 S o+ m
//Deal event ...$ i) I% |. h$ m: C! n Y
; J1 V& s2 ]/ `* C! e7 C//Deal InitVal! P: }' v! Y) [! d/ Z
BYTE ret = 0;
& x2 p8 c1 y' e5 x' l" ~SetVal+=InvisibleInit;0 |% F$ O' A9 w* u
ret += SetVal ;& f. J, V' y4 F
return ret;: P8 V- A+ L0 y) ^; V+ G7 y& i
} 1 J/ f* r6 R3 i
& u. D- C+ {' X) `
最後關切的函數當然是遞減函數:. Z4 }# e$ p/ S4 Q6 c& w; C
ex:# c) ~8 w' S, W
BYTE DecInviVal(BYTE *InviVal)
7 U' v9 }" @' _- G1 J( d/ F- a4 k{
6 I( C! J! i# ^3 H, Zcout<<*InviVal<<endl;
" W( m+ A4 ~! g" u% q8 j(*InviVal)--; //*InviVal -= DecVal;. C) j6 }* ~3 d1 a' L
cout<<*InviVal<<endl;
- f1 v* ^9 N# d4 {(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
7 r3 i5 b% d6 c$ ?3 o( q Xreturn *InviVal;
5 c3 a: Z: T u: [}- R& V4 k' O( V8 F5 x0 R( P) s, t
7 R# B* _5 A9 l* q( J/ ~$ D; E3 i
針對以上觀念,改遊戲就很簡單,
8 _$ l- j! s- q. L3 I, A一開始我們先初始化數值,輸入'?',) s( V" R0 d- P5 p$ k
接著開始無敵時,輸入'+',! w4 K9 y4 h8 |0 v# Q
接著我們知道無敵時間會開始變動,
% W& D) Z4 M! b0 j6 j" c J以上例來說時間開始減少,每隔一段時間輸入'-',
) m! s+ q3 _8 D, ? y最後沒有無敵效果了,輸入'!' 或是 '0'。
7 z7 i+ D" o; E% O5 ^! `6 E
+ g6 t. P9 t8 l* `記憶體地址經由演算法篩選後,只會剩下幾個,* P6 P' [8 ]: x0 S+ B6 b: U3 R/ e
try 一下,你要的地址就出現了。
# z1 d7 _6 z" L* F) z
7 `" n: R, e8 fP.S.以上程式已經Run過,沒有問題。, I2 j* T! k+ x$ B! O! w
) N4 y1 z# H+ _
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|