|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
. f; x& A- p7 I! j主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ! U' @! I$ w* O2 W
+ i8 ]4 r& O i9 \
其實修改無敵很容易,; Y! r! n. f) f& @- n
就以遊戲程式設計的觀點來說,6 O1 B5 G. n7 @0 \
一開始我會將人物無敵數值設定為00 r% t& F6 P% K* _# T1 D
ex: 5 S k; Y2 j# K) W1 j' a* z' x2 @; |
#define InvisibleInit 02 O+ r T- X4 h6 @/ @# O
6 D" U- H. I" K% ^; b) x) O; ~* H( d
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),, u$ I0 D0 P3 p, N# W- V; d/ ]
呼叫設定函數% D0 a8 {! p2 ]# N( ~
ex:; ~; f% I2 S8 u+ ?# Q. s
BYTE InviIniVal(EVENT event,BYTE SetVal)
) r8 p+ U& q. O6 [) O* M{+ W. [2 A, e& }7 b/ n
//Deal event ...& ~6 _2 x$ v4 d
: B' O' a0 b+ b6 z9 @6 h* o//Deal InitVal" Y+ B( {5 g4 D% g# g/ O
BYTE ret = 0;
! b" V _8 a% a2 v/ c1 |SetVal+=InvisibleInit;
% p+ x5 D$ U4 ]' O' ^2 I1 Nret += SetVal ;
0 X& u, d' g4 A* z) ]( |return ret;
! ?. s! `; c/ J4 b4 U# h}
) x$ F- c. X% x
+ ^% E2 G/ w/ W, O6 M最後關切的函數當然是遞減函數:5 N: d$ P* d0 b% @) ~0 x1 [
ex:9 A; @$ I! ]1 Q5 @2 f% N/ [
BYTE DecInviVal(BYTE *InviVal)
$ [8 d1 U- J7 u; R{
" P7 B& J4 D" t) v& ycout<<*InviVal<<endl;
: I& Y9 ~4 m& x( F7 t' X6 {(*InviVal)--; //*InviVal -= DecVal;
! q O% o; @! {1 t4 Z9 [. g( Acout<<*InviVal<<endl;# `- U' i2 f6 H5 X
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;& f" s# }+ l% P6 J( I" ], E
return *InviVal;
6 }# Z/ C) t/ K: G5 f9 L}$ n" f2 n* Z% i& m0 B$ l
) m! [7 W" b2 _2 r
針對以上觀念,改遊戲就很簡單,, F+ L/ n! v2 T2 X* x# {
一開始我們先初始化數值,輸入'?',7 u2 H" l9 x- p4 A" K3 R
接著開始無敵時,輸入'+',
* N: C: ~" a$ h1 F接著我們知道無敵時間會開始變動,) H! S6 r; o: l9 e% w* S4 g
以上例來說時間開始減少,每隔一段時間輸入'-',7 U+ b/ R! K3 T4 f& ` j
最後沒有無敵效果了,輸入'!' 或是 '0'。
; N$ `9 T3 S0 n5 [
' h, Q3 a: F' Z. N$ P+ Q記憶體地址經由演算法篩選後,只會剩下幾個,2 B: P& ~4 L9 c9 L
try 一下,你要的地址就出現了。
" ~* q8 H( \3 o8 I: z5 B" [& ~$ c& [) v+ a" z5 ]
P.S.以上程式已經Run過,沒有問題。; V. t" X$ _/ K. |( I
+ X! k! c" B3 t8 n6 F9 X[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|