|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
( p/ Q* h1 D X+ X# {: @5 e主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
( e5 C1 t# a. Y( r4 D6 ?8 q" l; V5 m' h" z5 S
其實修改無敵很容易,6 c: ^: U5 E8 y: ]
就以遊戲程式設計的觀點來說,
0 B1 t. W- H8 W) F5 i一開始我會將人物無敵數值設定為0
- t6 N6 V, M$ _1 w* p' Pex: , U/ O5 P5 l! M% Y
#define InvisibleInit 0 F Y, ?) N7 C" [
9 Z5 h0 _* B/ M, F9 ?& s
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),8 u! \' @, ^( n. P6 I
呼叫設定函數" Z# i0 Q5 k" ~! i/ z( J+ x
ex:
4 u+ w+ n4 S& `3 O3 B- h! T* q& gBYTE InviIniVal(EVENT event,BYTE SetVal)+ o5 I3 K& ` h# `+ S
{3 ?$ b/ q0 H$ P% `, q
//Deal event ...
0 q+ \# C2 X* _) H! Q8 ~
- T; I% |/ I: @# h$ e//Deal InitVal. D: G/ D" ?* U) d& N& _) ~+ d
BYTE ret = 0;
3 y1 u9 g3 Z W9 h5 B$ n4 kSetVal+=InvisibleInit;% t/ P) \ r, q# u" T. S- Q
ret += SetVal ;
& w* g5 i0 a3 [' F) Xreturn ret;9 ^# ?; [+ W1 ^1 R! _. z
} $ v- ]1 {- r4 f; G. h4 S1 C6 `" ~% J4 F
) l# I0 x1 Q6 r% l/ u8 O: L6 R最後關切的函數當然是遞減函數:0 t- s; H E& a! Q* e
ex:
9 E% B/ I& a( b; w: w+ n* ~BYTE DecInviVal(BYTE *InviVal)5 K( h; |( l4 G3 Q6 K7 h
{
) E) o h. a$ t7 T( ccout<<*InviVal<<endl;
8 q; l) N0 W3 X8 L0 T(*InviVal)--; //*InviVal -= DecVal;
5 c, d3 Y0 H/ u) |" i+ y: A$ ?cout<<*InviVal<<endl;( I* ?; a. ]& z% m* D F8 G
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
: w( J. D( ]2 t' p# \return *InviVal;
9 b Q {+ ?, v" |}
( b: h- |# ~, j. ~: \
6 e7 y9 _5 `& r# E針對以上觀念,改遊戲就很簡單,
' P. \; e) V r) F6 M一開始我們先初始化數值,輸入'?',
: D5 y8 L, t5 ]4 m接著開始無敵時,輸入'+',7 _. ~- g3 C8 P8 Q. h4 c
接著我們知道無敵時間會開始變動,
9 M8 u7 o9 e0 Q8 d4 d以上例來說時間開始減少,每隔一段時間輸入'-',
8 }) S8 y3 R T! M, Q5 z最後沒有無敵效果了,輸入'!' 或是 '0'。
9 h* O( n6 J$ |2 F: T }+ X
$ G0 [) j' ~) o9 ?0 {; y ^記憶體地址經由演算法篩選後,只會剩下幾個,0 w# ]9 N' ~* S5 c
try 一下,你要的地址就出現了。
0 p" E: Y8 G5 u8 T# e$ p, e+ ^3 _! A: L
' s" K, Z- J: Q+ ZP.S.以上程式已經Run過,沒有問題。- L. U4 G8 Y/ u4 w! [
1 ], i a. |( O) h5 Y1 ][ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|