|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表
! F- c0 W& L2 {5 G* n主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
, p G* E( C! F7 F
1 A) j* d& c. p6 o- w, B" _其實修改無敵很容易,
, T. ~ u- I1 [2 k4 v+ B# o9 e就以遊戲程式設計的觀點來說,2 Q4 n# A- B. e9 y
一開始我會將人物無敵數值設定為0 D% D, s; @: ?+ D r l8 x' ~$ x
ex: ( O% S$ h6 E9 q
#define InvisibleInit 0! l7 ]+ S C7 w+ R
# ~- h0 N5 \5 K* b$ @4 r然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),) L# M5 ~9 f* l( I9 [
呼叫設定函數
$ _" I/ W9 N/ G1 _) T& D; rex:
# h# |7 V' C! o8 U8 hBYTE InviIniVal(EVENT event,BYTE SetVal)
) f% n# u) A9 I7 n& x" J* j2 I{6 l, u8 |6 j6 _3 {6 _5 p7 B5 v
//Deal event ...* q$ b5 c# a1 F* ?/ U) e3 `
( A2 S& U- i# x# C# j: |+ {
//Deal InitVal3 A# u8 e( v% ~4 G
BYTE ret = 0;
8 o% B6 O+ m: h) q, q! XSetVal+=InvisibleInit;
" r: @. ]1 R8 cret += SetVal ;9 q( l9 h* v9 [. v7 C) _# Q
return ret;
; D% p& F0 L n8 \6 W} ! S4 W6 r7 @ E9 d& H
1 {3 \- @- a9 A/ H1 Z6 M9 @最後關切的函數當然是遞減函數:- G ]! T* l8 c- X
ex:9 X* H+ P" f/ R3 V4 n
BYTE DecInviVal(BYTE *InviVal): T6 e! v1 e$ v" B1 Y2 X
{
0 Z( c# Y; h2 T! b* k0 h' G- p' |cout<<*InviVal<<endl;+ p% o+ J6 a- B W" ~/ ]4 u' ]/ z
(*InviVal)--; //*InviVal -= DecVal;1 E5 }) `' g1 U; X: k9 I
cout<<*InviVal<<endl;
/ E; ~& b$ v, o: j8 b(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
N5 O' p _7 t3 ~' ] `% Zreturn *InviVal;% c; \: u" D! t8 h8 w
}
, S0 \2 Q9 u6 v& _% y: Z; z! O8 [( u! A; t4 w' _6 R
針對以上觀念,改遊戲就很簡單,
0 Z- R* u* y# p( F. i" \一開始我們先初始化數值,輸入'?',
, j8 j# ~. X9 o( z接著開始無敵時,輸入'+',, P/ H/ c1 Y. d0 f! R
接著我們知道無敵時間會開始變動,
. `; _/ ^" h) `+ g I$ U以上例來說時間開始減少,每隔一段時間輸入'-',, P2 m, w6 T& ]# \8 A+ u
最後沒有無敵效果了,輸入'!' 或是 '0'。5 c" i7 E9 z! d: k* W% C* V
. f8 ^1 a" Z% ~% _記憶體地址經由演算法篩選後,只會剩下幾個,
! D0 A4 K; x9 n* a" _+ Ptry 一下,你要的地址就出現了。% p# V: Y' y' M' P2 l9 N7 r
8 V( Y* L. U' W
P.S.以上程式已經Run過,沒有問題。
* W" O& i2 H, Z7 J2 i- K$ O0 ^# G' _, k0 e( P+ _* z' D) z
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|