|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表
/ P3 B( j u* h$ O% e主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
) y: o* h, V" W. t! p9 d( o
' a( G8 N1 r* x5 a4 B9 H8 |其實修改無敵很容易,2 w5 r* b8 ? p4 E: z: D! D
就以遊戲程式設計的觀點來說,6 z" Z7 w1 E* Z1 w" [
一開始我會將人物無敵數值設定為0
9 t& t- i. F/ l2 L5 Lex:
- G0 _" f: m2 }( ]& ~* T#define InvisibleInit 0& y) q B5 A/ H$ T) S
* `1 U* L. o% f
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
7 m+ K W; A7 [3 U$ n呼叫設定函數
$ u+ y- e1 T( `! v3 L4 W+ d; Qex:% H5 w! H1 [5 V, b
BYTE InviIniVal(EVENT event,BYTE SetVal)- `; N# Z! ] ?6 j% e
{, V# V4 Z" ^- o# e6 R
//Deal event ...6 F Y8 x2 P) M- k1 D, ~
+ }. X" H7 J0 N" a+ ~5 H
//Deal InitVal
7 h. t2 @+ _: T* d8 M6 VBYTE ret = 0;" E. H& P. _# g9 Y) `
SetVal+=InvisibleInit;. Y: |6 Z( s9 b/ [* V2 ~4 \
ret += SetVal ;9 R0 X- d- S2 X, T( h4 v" u8 h4 U
return ret;
" p! o+ f+ y I& e/ Q: \& T9 }}
& x# P, l [1 w6 Z$ d P; n' z. w4 [" R& k
最後關切的函數當然是遞減函數:
! D$ \5 ~/ y$ cex:! p% C4 M6 ]& k2 H0 ?- ]5 d
BYTE DecInviVal(BYTE *InviVal)
) f1 O8 s: `1 U0 p{
. o& n( L4 J8 H' D9 kcout<<*InviVal<<endl;
2 [$ L. r! l m2 M- M(*InviVal)--; //*InviVal -= DecVal;
8 m* u2 r( r& tcout<<*InviVal<<endl;
& ^; E: J7 l" K(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;! y" V* v! `+ p% b, W- A% ~
return *InviVal;
1 c1 }9 q2 j7 J2 x# k% ^}
$ H; K+ |8 s- U. z" N: s
# i9 q1 V$ a! y3 P1 H5 U$ @6 e. s針對以上觀念,改遊戲就很簡單,. E- v. y: F" `* \: k% F
一開始我們先初始化數值,輸入'?',9 A6 I9 D4 b+ ?+ [6 p; r6 m6 G
接著開始無敵時,輸入'+',$ O7 R; r6 v( M( o# e
接著我們知道無敵時間會開始變動, {& r* M l: ?3 u" I0 x/ j( h' B
以上例來說時間開始減少,每隔一段時間輸入'-',% X" D7 o) Y7 a/ X; i* y5 E" {2 ~
最後沒有無敵效果了,輸入'!' 或是 '0'。
! ^. l" j3 D2 ^2 x+ Y% S# {; w& j5 D6 Y6 Z! M3 q/ I
記憶體地址經由演算法篩選後,只會剩下幾個,+ d! V T3 k3 ~! m! [: M
try 一下,你要的地址就出現了。
" L- U6 O7 o1 T: q1 A9 L; B; j! ?/ o, |. {$ e1 t7 h
P.S.以上程式已經Run過,沒有問題。( A" }7 o2 k( \6 M2 i! ^' z* U3 T
2 F1 q0 |) x/ j" n: b2 E
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|