|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
* p0 w4 Q8 m3 _' V5 \# m6 v2 `1 D主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
% R! B; k; o5 m. F7 k9 E2 k/ [2 O U3 e6 s) Y5 \
其實修改無敵很容易,+ X$ [/ c/ Q! z
就以遊戲程式設計的觀點來說,
5 x* ~; l- D! J一開始我會將人物無敵數值設定為07 C% I' N0 z" m- s' A
ex:
$ e4 ^/ j. r' x/ s* E: _#define InvisibleInit 08 d9 h) |: z8 v, i
# I' M& R; e7 v2 r7 X* Q, P然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),: y$ [1 r* j5 @- P
呼叫設定函數5 x* h4 K b& s1 [
ex:
* Z7 _; j' Q4 N* b2 V' ?; J- K' z2 @BYTE InviIniVal(EVENT event,BYTE SetVal)) }/ o: k, X- c( w0 j2 b+ n
{
3 G7 g3 G3 A) E4 X! _- o$ }$ A//Deal event ...
B/ B. h# D5 T7 A( b
' V2 s2 M ?& G& n+ {//Deal InitVal
1 u% S5 @ M2 Y0 n+ c+ l6 g" t. {BYTE ret = 0;
$ K i6 o( ^$ v9 f! F$ DSetVal+=InvisibleInit;' g9 \- s0 ]3 ?5 a5 x. b7 B
ret += SetVal ;6 o- b) @3 f" B/ _0 t
return ret;0 ]) G/ D) w5 B9 t6 o P- i2 y
} : x2 i2 @0 U9 q+ D- R% V
, v" r0 H H' `- E+ r
最後關切的函數當然是遞減函數:& f7 K8 B/ j+ k& o
ex:
; b; H( y/ R8 S; zBYTE DecInviVal(BYTE *InviVal)0 B' }/ u' V! o& n* f
{
H, m) ~ A' pcout<<*InviVal<<endl;
' ^+ H' X4 B; g6 w [(*InviVal)--; //*InviVal -= DecVal;
3 M4 C, \; t, u# D& g8 r7 Ccout<<*InviVal<<endl;. @8 I3 s6 ~4 C! H
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;; Q& j+ d% ^1 j1 @! I
return *InviVal;( s: a( I3 }# x
}
, M3 n! U! i6 x1 E5 h/ D1 p, Y9 w8 J) K d, g
針對以上觀念,改遊戲就很簡單,2 B& k: ]6 K! E& u: a
一開始我們先初始化數值,輸入'?',* n6 P( ]; ]+ }% r& Z6 l5 [+ U" t/ ?
接著開始無敵時,輸入'+',8 k, H7 l$ U: L2 M o: {
接著我們知道無敵時間會開始變動,8 Z* ?+ V- n/ S! a3 y* r* Y+ w
以上例來說時間開始減少,每隔一段時間輸入'-',
6 r* y* _/ ?. n( T最後沒有無敵效果了,輸入'!' 或是 '0'。7 z# b) x2 n L* z9 Q
3 k, p$ N$ \9 T3 e6 f0 n. {
記憶體地址經由演算法篩選後,只會剩下幾個,
6 T) t% Y7 L( g5 |1 t/ \try 一下,你要的地址就出現了。6 }- c& ?5 V2 G3 a! w4 y5 a! u
+ B P0 u- f, z% nP.S.以上程式已經Run過,沒有問題。+ y/ k- G; c2 p$ z& S# H, \2 N
) [6 M& p0 G4 p; x) ^
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|