|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 / h/ L; Q4 J" @) M* _+ E
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 7 J; y) y1 G; w/ a$ ?
9 {# ^+ `4 \0 }8 u- H
其實修改無敵很容易,
. f: w7 S1 k- q! E$ K: c就以遊戲程式設計的觀點來說,
0 d7 ?- o; e6 u8 x+ d4 O$ N一開始我會將人物無敵數值設定為09 b9 Y9 s1 ?- l0 v5 C+ ]3 V
ex: $ x5 x+ G. g% K) f6 L
#define InvisibleInit 0
) R; N0 h. Q/ n$ |3 J/ \3 k
* D5 w S3 J g/ S然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),6 h7 c0 s/ `( O4 w; r1 I# w" y( X
呼叫設定函數
* p! A9 `7 M: f1 Xex:3 r1 A) W8 v1 S8 O7 b6 S
BYTE InviIniVal(EVENT event,BYTE SetVal)
6 q) `* C5 j. _$ ]+ D" A r+ c{
. r4 P$ B' D$ g- W; N. b# T//Deal event ...
: U9 e R" I- z# I* R ?# z1 j! I4 v3 M+ ~$ Y$ |! ?# h
//Deal InitVal* t4 ~ V+ O8 M( B$ g
BYTE ret = 0;" s, x* ]$ }6 p3 G# K& L
SetVal+=InvisibleInit;" s2 m1 i& G( ]7 o! d
ret += SetVal ;6 y* f" j7 H$ c4 G; v5 v/ Z+ {
return ret;
. a5 Z5 G7 X+ X8 M+ L} , g0 H1 o# H. `# s- J' \) b
- ?/ t; }& _) y; k( Q; a
最後關切的函數當然是遞減函數:
3 {2 |/ o! O& c0 A$ dex:
$ R5 M" ]+ z1 dBYTE DecInviVal(BYTE *InviVal)
f. v3 |4 d; S, L, l' k{
0 ?% g) d( O9 q! }+ Mcout<<*InviVal<<endl;
1 @) v) ]* V0 f9 Q(*InviVal)--; //*InviVal -= DecVal;& r4 j1 _: ]7 w" o
cout<<*InviVal<<endl;0 z0 `! l4 Z# L0 G% b) j/ a* [# Q
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;& G5 l& V; Q' B, L9 Q! J# u
return *InviVal;, T, h) s9 N) u: `, E% O: h
}
" [ Z1 I, T8 ~% c: L1 O; B$ Y* L x0 B
針對以上觀念,改遊戲就很簡單,* ^% n+ t+ J' t2 \5 U0 X0 o
一開始我們先初始化數值,輸入'?',
& t. S( w6 B# C. |) I/ N接著開始無敵時,輸入'+',5 K; r. a f6 ^8 R) o/ N) c
接著我們知道無敵時間會開始變動,- p. r# Q2 M/ U
以上例來說時間開始減少,每隔一段時間輸入'-',
3 X5 g& n, c+ O1 @! ?+ z最後沒有無敵效果了,輸入'!' 或是 '0'。2 j$ G, z% ~9 e" l& \9 b
: x$ p" k& P. F+ N0 A) w記憶體地址經由演算法篩選後,只會剩下幾個,
- d. a* o" L& T2 `try 一下,你要的地址就出現了。
* w' i; d" \, p
O: q8 g d. E! xP.S.以上程式已經Run過,沒有問題。8 ]8 d3 i! i; @! u- R3 d# S5 D7 A" K/ g( D
2 q! M* g( s. O- q) w- A; ~2 }
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|