|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
" o2 o' F |1 J3 z) e5 S% K主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
2 V' X6 w' d4 V' C' V0 x7 W: h) N! i( }* b! o* d
其實修改無敵很容易,' j+ `8 t/ [( R
就以遊戲程式設計的觀點來說,
' N5 b/ r: e; K( z' `8 c$ B3 a一開始我會將人物無敵數值設定為0+ P& n* x- ? R! `1 T c# B
ex:
# ^6 Z( U% e% P5 o# o6 O( ^#define InvisibleInit 0& E+ |* ]$ h2 P5 ^& b; \( _
, u8 `$ l% g* ^7 @) N: G
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),. y; W w2 _4 y6 A/ T8 X
呼叫設定函數5 W$ q5 h( C! D& E3 n
ex:# K! Z: E/ \2 u" K5 h( A! U* v
BYTE InviIniVal(EVENT event,BYTE SetVal)0 `! Q6 L! S3 ]+ v3 m$ R
{
$ e: j+ g" y, H { `//Deal event ...6 W8 q" {, o/ [
% f- E2 e3 G% T2 C: v- |
//Deal InitVal
) @ A& u3 k% R6 a2 y* d% XBYTE ret = 0;
' d# M" c4 r$ m; E3 T. zSetVal+=InvisibleInit;
9 |1 L' u6 c, f; `- ?" ^ret += SetVal ;- T3 I/ P( o; h3 C' V
return ret;2 Z9 l/ `1 o, K8 Q
}
6 p% j4 }4 r4 X) b2 o5 y. ]5 D8 ~& } O2 ~7 o: F7 q9 s9 \
最後關切的函數當然是遞減函數:
2 {, g8 R6 y2 hex:1 Y1 T+ G T1 X7 v! e
BYTE DecInviVal(BYTE *InviVal)* L0 d# g) b+ F x7 ?0 a
{) [$ N3 H |$ @/ N
cout<<*InviVal<<endl;
7 V" i) r1 M+ S(*InviVal)--; //*InviVal -= DecVal;
6 }, b( u. M2 b9 d( l1 @cout<<*InviVal<<endl;
1 }! Y7 ~% {0 }8 g$ u$ T4 ^(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;- ?' ^0 K' m/ p: f. o- Q6 g! Z
return *InviVal;: q- D9 i1 I- A0 ~& \1 x/ l/ ~
}
* M. Z' F& `7 B) b' b2 G8 e# ~# z" A {; D( p2 k. }. T
針對以上觀念,改遊戲就很簡單,) E/ L- x$ |+ z! L, v
一開始我們先初始化數值,輸入'?',
: ^& F' Y4 Y1 q接著開始無敵時,輸入'+',
& b6 Q O9 k8 V/ T接著我們知道無敵時間會開始變動,. m0 L9 e( g; u' ?3 f$ h
以上例來說時間開始減少,每隔一段時間輸入'-',& f N F8 U8 l4 r
最後沒有無敵效果了,輸入'!' 或是 '0'。
& P+ a2 f# @4 M: o) Z% P3 N
: F0 O A" Z9 ]$ G) v1 K$ v6 o0 K* }記憶體地址經由演算法篩選後,只會剩下幾個," s5 {" u) ~( x4 E4 G2 V$ z
try 一下,你要的地址就出現了。8 V1 T+ C) e! e2 B& \& ~ r# U
4 [) G0 B* q, R8 H( ?% _/ O
P.S.以上程式已經Run過,沒有問題。3 B% h/ D, C) k( B/ c% ` W; q7 a
. _2 m! o% _2 @0 }[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|