|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 * `) e+ y& J6 ?$ |
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
7 S5 u# v# q1 B3 K% T) T1 J) x" M9 y; U5 e& Y. A7 r( a" A
其實修改無敵很容易,; q7 d& n4 y! [5 r; e) m4 \5 C# m8 D
就以遊戲程式設計的觀點來說,
: F3 {1 J1 k- `, m; m4 b% W; h一開始我會將人物無敵數值設定為03 q% f* Y; k H0 ]% V
ex: & `5 x0 C$ M# b
#define InvisibleInit 07 }- A/ u2 r1 s# s# A! P' a C" f: ]
/ b% k' d* ?2 I5 ] N! w然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),! P+ ]5 n4 M3 i, s% x( F) g
呼叫設定函數
! ?- c4 T8 V [6 d/ W% m6 H3 ?3 Pex:
) ] b+ C- C+ P7 p6 aBYTE InviIniVal(EVENT event,BYTE SetVal)4 c7 P+ A7 n' X
{( ^( l' M$ K/ A" d
//Deal event ...$ I, n8 _% [' R' z5 e l
9 T3 [. s+ `2 Y//Deal InitVal
( v; E1 V' o" [' z- _& l; gBYTE ret = 0;
( A! c T2 d8 P# d: ^9 aSetVal+=InvisibleInit;9 D* ]+ H3 O6 @! J; t+ W
ret += SetVal ;
# b- D& U( }' |( c9 creturn ret;0 U5 M# L' r' j- W
} 6 [! W1 O' Z: d0 M8 e* E
0 R: r3 y+ p3 c/ n0 `2 V! L1 y' g; v6 z
最後關切的函數當然是遞減函數:
0 x3 s" I) n% x* Nex:
' X) L A3 i' ^BYTE DecInviVal(BYTE *InviVal)
1 p5 ^2 u+ d7 @2 M7 E: ^+ R S; |; N* N{; x" e6 d n$ \. M# o
cout<<*InviVal<<endl;
) d* P, Q& b9 y/ p+ r& Q0 [" o, W(*InviVal)--; //*InviVal -= DecVal;
: |" ^4 [3 v$ ecout<<*InviVal<<endl;: o2 F2 y. R0 n. u h% i
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
" Q& G( v6 A* a$ i; jreturn *InviVal;- r" j5 r T) `$ @
}+ \' V5 e" C) j4 T1 o8 G' c
4 M9 S7 V2 j, t針對以上觀念,改遊戲就很簡單,6 ^4 F; o: \! ~4 ^( R+ `
一開始我們先初始化數值,輸入'?',
& D+ B' |9 Z" D) G4 ]2 I4 [接著開始無敵時,輸入'+',$ w) `" N' T& H9 I# N
接著我們知道無敵時間會開始變動," F% w( T, ?; r
以上例來說時間開始減少,每隔一段時間輸入'-',% }0 y9 p( Y3 b( v4 i1 @6 C' p
最後沒有無敵效果了,輸入'!' 或是 '0'。, M: k' h) D0 X& i
+ _2 @5 I* {- o$ a- x
記憶體地址經由演算法篩選後,只會剩下幾個,1 @: m! y: b' v; _9 `4 c+ w& F
try 一下,你要的地址就出現了。- b7 ~# x2 H3 y+ R7 \; w) d
/ o5 X/ B, S) {P.S.以上程式已經Run過,沒有問題。
+ D& E& `4 ~, e+ K8 D
4 _/ n1 ^8 ^ P% ^ i+ l* M[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|