|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
. c8 y6 f; |& H0 A+ m4 ~* X主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 5 A t- D7 B& {& G: q( I: x8 h: t
- x) L# l2 Q M0 L; b; B
其實修改無敵很容易,; _2 Z9 H% o6 L) @( ^
就以遊戲程式設計的觀點來說,+ o! C. F' W" s1 }/ A7 V
一開始我會將人物無敵數值設定為0
6 z! ~5 X, k. a% F# w* c( }ex: ; b* ]3 c* H% h! q! k* v% m
#define InvisibleInit 0$ B: s o2 z+ l3 B3 H
1 c8 M! u+ V# @2 K9 r# \& d; x( [3 A
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
; e0 P8 }" S- o4 Y. D; i7 G呼叫設定函數, S, h( t% r8 I- y. }
ex:8 \5 v5 w2 k! \7 c
BYTE InviIniVal(EVENT event,BYTE SetVal)3 w" J: q" p6 `: F( {2 e q9 b$ ~
{" m6 [3 f5 r) K5 d, t- M1 p$ O
//Deal event ...& U8 u7 {0 {6 ^; b) \% Y
' E6 |& g7 @- V( r7 J2 A3 h' \
//Deal InitVal
$ U5 G+ }" X6 I* F) v7 G* \% cBYTE ret = 0;
2 A7 P. u+ X; Z6 I: vSetVal+=InvisibleInit;8 p' F# c- D5 g, R( H' G, ?- d
ret += SetVal ;5 d2 z3 g( c/ S
return ret;
z* s1 S, O1 D$ y' H' |}
9 h }6 V8 g' |
( k$ t* f9 A! O$ t7 c w最後關切的函數當然是遞減函數:
. S' L& A9 D; ?( Tex:9 J* \9 ^) ^* M4 N/ w& j) @
BYTE DecInviVal(BYTE *InviVal)
- t4 t5 k2 ~) x9 |1 P1 e' o{2 C0 W& o( O3 X5 A; W, o
cout<<*InviVal<<endl;
5 k E, G E( R1 [! l" S- O# k1 H(*InviVal)--; //*InviVal -= DecVal;% |' }# X% N* y) _$ E
cout<<*InviVal<<endl;* A& p' I) Z4 d2 h
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
5 L1 m! S+ V! S6 ]9 o7 vreturn *InviVal;
, ^$ }- y9 b7 i# F* F6 G+ C}$ z/ P: N! l: c7 {9 T$ D g9 _
& [, D% ^: k5 w: m; ]1 q9 E
針對以上觀念,改遊戲就很簡單,+ ~+ o/ \- W3 ]/ T
一開始我們先初始化數值,輸入'?',* `) Z# x+ D6 @. |* Y, _+ l
接著開始無敵時,輸入'+',% g1 s- R) [3 t
接著我們知道無敵時間會開始變動,, f M1 O& C9 Q) c
以上例來說時間開始減少,每隔一段時間輸入'-',
# t( P) C6 k3 ?3 {最後沒有無敵效果了,輸入'!' 或是 '0'。8 w+ T& y8 ?& U+ a& [
4 D( |$ ^0 {8 r, c4 ~- Y( B8 w5 N# D記憶體地址經由演算法篩選後,只會剩下幾個,
. T% i0 m/ Z4 ]" J8 S3 R, w Rtry 一下,你要的地址就出現了。
1 @ Y( h+ p& I$ ?0 F, N/ j D0 q: N. o
P.S.以上程式已經Run過,沒有問題。
* m3 K6 {# d/ U% G/ H9 b. F! R, v8 g
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|