|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
* e$ [: Q3 Z$ V主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
( h, J% |# K7 z5 Q! u9 r7 u0 C' ~9 G; T ^& y5 N6 b
其實修改無敵很容易,6 \- y" B) c) e$ \
就以遊戲程式設計的觀點來說,' \" x! g3 E/ Q" K x
一開始我會將人物無敵數值設定為0+ ?6 }; T# I5 G: T( b4 R5 n
ex:
& K9 ?0 b% r% X5 m0 a. N4 J6 t, |#define InvisibleInit 0
& B, N- l- T# D% O4 c% e1 W% k2 Q! R" |
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
. S" W! c0 z: n' F! z1 {/ W7 [呼叫設定函數3 l" U% h. ]2 ?$ u I
ex:: q( m: L+ A) u2 M
BYTE InviIniVal(EVENT event,BYTE SetVal)
; I$ k: C- p j* Z* P; P+ U( R! _{2 {8 J `4 m7 K% c
//Deal event ...
* A0 {/ a" z- B* O9 ^# m) A& q$ K) u5 V% {) J
//Deal InitVal
U+ _" h. Z' ^1 EBYTE ret = 0;
- X, W3 m% a% t* o$ v/ t0 u' C. CSetVal+=InvisibleInit;
) C3 b* t" L5 j1 K0 C, J( Jret += SetVal ;# u/ [6 t# {3 }% f
return ret;
6 S% l4 I& H+ H9 Z' z" I0 C% d}
4 V7 n7 M1 Z/ b) d/ l4 q& X, w4 i* s# q- m
最後關切的函數當然是遞減函數:
: w1 q8 p+ z+ D# [3 j/ j3 gex:
8 o3 J" t; W8 c8 O1 pBYTE DecInviVal(BYTE *InviVal)- X9 v W$ A4 j" Z3 P4 H
{
2 A1 ?6 l& H7 f" g+ w* j- J( Vcout<<*InviVal<<endl;
! x5 D' q m% Y9 u4 L8 i( J Z(*InviVal)--; //*InviVal -= DecVal;
6 t5 o6 C% e8 Ecout<<*InviVal<<endl;. N9 _; l9 g Y: x
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;0 v( H$ i, c( b- c
return *InviVal;5 y! l; ~+ z9 o
}- ^2 e( t+ m6 J5 Q! x
7 b2 M8 q5 w1 Z9 H& A! K
針對以上觀念,改遊戲就很簡單,) M5 N, l; G! [" I
一開始我們先初始化數值,輸入'?',
) I, I$ O A: g7 p+ H1 u$ s接著開始無敵時,輸入'+',
+ w( S8 e7 D, v$ v: _. ]) y8 S接著我們知道無敵時間會開始變動,
, R3 u; U1 t/ v- s以上例來說時間開始減少,每隔一段時間輸入'-',
+ [4 j1 h. E, b& z5 M. `5 G9 h最後沒有無敵效果了,輸入'!' 或是 '0'。
8 Y4 s f. f4 S! O# G4 C% U& k& z5 s) J0 x* g1 V$ |
記憶體地址經由演算法篩選後,只會剩下幾個,
: i: w* W" X& N9 I7 g- Ftry 一下,你要的地址就出現了。
/ [8 G$ H: k# Q! B6 F E7 W( \2 B' x5 M7 ^+ h/ D
P.S.以上程式已經Run過,沒有問題。
) m8 M( t& I8 I. z3 s; h6 I, L! L/ {7 Z( X" i4 N' e
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|