|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 , u/ k; i4 c; Y2 G+ V# H- L" Y. b# D
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 * I" R& u2 Y6 Q! k" |- w2 q
7 Z0 K( X: _9 S& c, ?其實修改無敵很容易,- w2 {' p$ W0 p& Y1 s5 M7 c* ]
就以遊戲程式設計的觀點來說,) o# U6 ~% L& J; j6 b
一開始我會將人物無敵數值設定為0
+ Q/ {* Q: Z( _+ Y: M: P" \: j8 cex:
! A* Q% z7 B' a# L" X9 p#define InvisibleInit 06 ]7 B0 {2 u9 ]. U/ k
6 H4 ^; s& ` M
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),4 X% S. z9 u2 x6 @3 h
呼叫設定函數# R/ s6 r$ Y: @9 ^7 b
ex:2 F; t0 h) w/ o6 S
BYTE InviIniVal(EVENT event,BYTE SetVal), t2 U, a+ ^4 ^8 f0 R8 ~' d# o/ g9 y7 i
{% N2 J% q- B. l8 D/ A& u9 R
//Deal event .../ Y$ }& X; d5 C5 q
$ Q( |1 F/ ]% x- h* d+ i//Deal InitVal7 n4 u+ T& L/ J6 ?6 P! D+ T u
BYTE ret = 0;' |6 T7 D- j/ A- f. L% q, p' u
SetVal+=InvisibleInit;" ] C* _9 n8 S+ P) Z" V! c
ret += SetVal ;
* H1 V! ]% V- O* g' M* @6 Ureturn ret;3 j3 s# Q% ?' s( T/ @
} 0 |4 e9 _: ^! x1 Z; K; L
# x8 w# S( R1 h, N最後關切的函數當然是遞減函數:
* H2 J& C6 B0 y- v; z8 c ]ex:. }, g0 p$ z a# x
BYTE DecInviVal(BYTE *InviVal)
5 d% R# v/ J7 ]- w4 u, Q{; z8 w1 J. g. N' C' {
cout<<*InviVal<<endl;
0 f4 V$ P+ Q% ?, k# v* K(*InviVal)--; //*InviVal -= DecVal;6 B5 ]8 P; J0 Z+ r l9 z3 z
cout<<*InviVal<<endl;* e6 m; d# S8 S& S" d b
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
0 \, u6 d3 b$ r" x3 U- n. Hreturn *InviVal;
5 D6 N. [9 j$ H% i: o* }}8 i* D+ e0 u+ n* T
4 _3 u% e) ~9 p& B$ ~ R8 U
針對以上觀念,改遊戲就很簡單,% [2 ` z, S" x" C2 M5 G4 Z9 Z+ }
一開始我們先初始化數值,輸入'?',6 K, O3 @" z/ R! ~, B
接著開始無敵時,輸入'+',! @2 j1 g) z7 q; z3 y/ s p( p, v9 n
接著我們知道無敵時間會開始變動,
( Z2 R% F; j/ u以上例來說時間開始減少,每隔一段時間輸入'-',
8 p, t/ x, B3 v+ J" t3 n最後沒有無敵效果了,輸入'!' 或是 '0'。" l/ q6 W5 n6 }2 x% l, }
`# \1 V1 s2 K記憶體地址經由演算法篩選後,只會剩下幾個,9 F/ h( s! ~; i0 A+ B
try 一下,你要的地址就出現了。
( U5 K" W* t3 E
7 D9 ?8 P' n/ h% ]P.S.以上程式已經Run過,沒有問題。
9 x3 w8 B5 Y8 Q% _; _
) d+ Q8 L' \2 I& \8 L2 n! i[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|