|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 0 W }; W: L; S h: r Y* V& z$ h
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
' K. c& l* t5 i: r1 b( _* z: p
9 y$ R% }$ i: x2 T8 c, D其實修改無敵很容易,/ u h$ Z( n+ M p
就以遊戲程式設計的觀點來說,6 T; K( i7 Q, M2 n, a& i4 t
一開始我會將人物無敵數值設定為0: a/ v5 X& U2 N. _5 A7 F
ex:
7 z1 C0 k, a9 j% V- E" W5 Z3 ~#define InvisibleInit 0
4 p( a. \7 @% J& q5 _
' `% O& @, a9 F+ J; [, y然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
L1 Z8 U3 ]9 e2 w, I呼叫設定函數# M; Q. G6 j; t7 {- T
ex:% h" Y- L$ g3 `" q2 |; e6 R. s9 w
BYTE InviIniVal(EVENT event,BYTE SetVal)3 w5 n$ l) U1 Z- c3 ^; j% `
{8 f) j1 Q9 R4 q0 s7 b
//Deal event ...
2 i* ^6 \5 c f4 v+ r2 V5 J- ^& _: M
//Deal InitVal
( \( C$ c" }) w: P; Z) NBYTE ret = 0;/ l3 h7 p* P' s0 S5 y
SetVal+=InvisibleInit;- x; s7 l8 }+ W6 t- X# G
ret += SetVal ;
. `* `- c" ]6 v1 R- \* Jreturn ret;' m0 ~- K( X g2 `
}
2 ^# a2 U; N, E1 y1 t7 X% J: u3 U! R$ C( L4 c
最後關切的函數當然是遞減函數:4 E% j6 O; A# ~! ^+ ^
ex:
" c; X6 x6 G- R! @% j3 n$ v* [BYTE DecInviVal(BYTE *InviVal)) F! h5 i3 ~1 @
{& g) g! ]8 b- a/ u0 l+ b% ]
cout<<*InviVal<<endl;
- N `% G/ H6 ]4 G& o* N3 B$ y(*InviVal)--; //*InviVal -= DecVal;
1 Q5 T6 X: G [8 \cout<<*InviVal<<endl;
, F! b$ E; `4 ^(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
" y' {" v) F. Ireturn *InviVal;
* H. R; x) M* L- P" R, P}, F# {$ {% G/ f% N1 B Q) ~
4 D5 [; K5 A. l- O
針對以上觀念,改遊戲就很簡單,
. @6 i0 V* }, k, n2 f3 C一開始我們先初始化數值,輸入'?', H6 q @6 }% C0 z9 k$ U9 _
接著開始無敵時,輸入'+',
) F7 l8 V$ g2 q接著我們知道無敵時間會開始變動,
1 c) b7 a5 F' F+ p2 V- `5 _以上例來說時間開始減少,每隔一段時間輸入'-',+ `1 |! X5 i# E; p |+ T
最後沒有無敵效果了,輸入'!' 或是 '0'。2 e4 n% G) W, m) ^
" P0 Z5 A$ m# H1 I: [
記憶體地址經由演算法篩選後,只會剩下幾個,
0 t* C, o+ d" ~ r0 p9 t2 ftry 一下,你要的地址就出現了。% N5 k! z3 @* I+ H9 p# ?/ _. I$ V
; F) ~# V* I1 T1 A- NP.S.以上程式已經Run過,沒有問題。7 u$ R3 m! Z! q3 G% f. C# |
% B. j/ P" P: `/ y[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|