|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
. h" e' m _" ^' a主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 2 g6 R0 H4 [- ^1 d; c% C
3 b. u6 o& o) v其實修改無敵很容易,/ K3 m2 S+ v. U4 J* X+ W% v1 \5 B( d
就以遊戲程式設計的觀點來說,
$ p. Q# D. Z, [# ]& }5 I一開始我會將人物無敵數值設定為03 g b6 T6 V# }/ m1 f) K
ex:
4 S9 m. e4 o8 U" Q+ k( O& _3 f#define InvisibleInit 0; M! \: ?; r7 E# ~& ^: u$ T* I* ^
) |" P2 @3 [; z1 f然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
: A1 n9 r( _+ s7 z f/ O" r2 K呼叫設定函數9 p0 `5 a5 V5 Z, S
ex:) i5 H$ }6 Y- {; A# I( p; i' c
BYTE InviIniVal(EVENT event,BYTE SetVal)
& U7 @0 f; H6 A" w$ D+ S! _{
) _: ~) J! m' O8 ^: \//Deal event ...2 h) k7 w3 |4 v
) |1 q' W2 ~: K1 |0 X! A
//Deal InitVal8 z& o4 A' P p$ m
BYTE ret = 0;# v2 t0 R+ \) l: h
SetVal+=InvisibleInit;0 t5 n% F9 B( V0 F1 M2 O
ret += SetVal ; |6 P, `) ~1 j6 u8 Q; E1 a: }% `
return ret;. c5 I; U& f; V, ^! |, \
} . h8 x7 I6 q6 e/ T& k2 |" F3 C
O, y X+ a. c. k" V$ x) H最後關切的函數當然是遞減函數:
, \8 p) Y6 N K& Bex:
' z' A' U* e( X3 Y HBYTE DecInviVal(BYTE *InviVal)
$ @, f( `$ L v, L2 Y$ [{% E' u# l1 h+ u& N# V4 p: @2 J- G* Z5 c
cout<<*InviVal<<endl;
. f& D9 p2 N5 A+ R* }(*InviVal)--; //*InviVal -= DecVal;; K0 U Q2 j* S' N7 E
cout<<*InviVal<<endl;
( ]- H# B+ n" y8 G% u. u(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ; z8 ^( i* A8 q4 \5 c* o" v0 h
return *InviVal;6 ]8 {; _- V" e5 P8 @# x
}
& Q% {9 i2 u% d0 ~- D* J, N8 X. }, p/ v
針對以上觀念,改遊戲就很簡單,& {. d" l$ H% p7 s F! q
一開始我們先初始化數值,輸入'?',9 ^/ U$ O \* Z$ K
接著開始無敵時,輸入'+',
3 l; ]9 ? m1 v* G I- P) ~! t {接著我們知道無敵時間會開始變動,
' M# e, m/ j+ k% O" D) @以上例來說時間開始減少,每隔一段時間輸入'-',
2 y5 r. K- E1 m! d. F! v; d最後沒有無敵效果了,輸入'!' 或是 '0'。) \$ L& A7 N- C8 K6 I
4 G! J, {5 V5 A2 }$ }1 Q8 P+ ?) \記憶體地址經由演算法篩選後,只會剩下幾個,* i8 n* m: [0 P& c8 [9 {' `6 C
try 一下,你要的地址就出現了。
& X, J) g. R: |/ D6 D- D6 \, b, m3 v& y4 E: G
P.S.以上程式已經Run過,沒有問題。
+ Z! c, z; D5 r* L
: N# P. s& j$ j; S8 d[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|