|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
4 N% t0 l. n) ~- d i7 C9 }6 N主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 % _- f6 R6 P3 I" |/ p' u; p, W
. p' A( `2 f; `: s, ]0 y
其實修改無敵很容易,% G7 l( ?; g* ^) q- W
就以遊戲程式設計的觀點來說,
, E$ k3 ~! w1 O) ~一開始我會將人物無敵數值設定為0, ?& h' F H1 k$ y3 }
ex: 2 M {6 j9 X% @! o
#define InvisibleInit 0
6 k% g* d! g: O" l1 v$ ~
8 f* i. \8 T( w7 n6 x% e$ E然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
) ~. D# O6 S9 c呼叫設定函數0 r# u# A% p! k/ C+ Q* I+ \( Y: A
ex:2 t5 ^' s; ?$ @( z( i5 @
BYTE InviIniVal(EVENT event,BYTE SetVal)
% [+ [0 {1 ?3 K3 k2 R: U( G3 I{
2 J# l- a% l( X( v9 {//Deal event ...
! c# b5 C) A' w* R& j( d. D8 L. {$ R! U* z* ^! ]8 [2 ]
//Deal InitVal
3 d* r+ Y/ ~2 i) ABYTE ret = 0;
/ U; U8 K) E/ D5 D" a& wSetVal+=InvisibleInit;- n' {& y9 W O7 t
ret += SetVal ;+ g2 N7 U& P: h2 w F
return ret;% g# V- z0 \, M& X
}
& k* ]* P$ S4 X) T' e# d |
8 p7 i# P. L; m/ P1 W& e最後關切的函數當然是遞減函數:
4 H* D; B" g* V, V8 G2 T8 dex:
( ^& x* h' ~' f G* q$ P6 `1 ]# qBYTE DecInviVal(BYTE *InviVal)0 e- f( w" z% {( |. J
{4 c# R, Q7 |9 n) H
cout<<*InviVal<<endl;! y% s0 y& ^* B& j# Y
(*InviVal)--; //*InviVal -= DecVal;1 K9 Z- z, _ T( N- R% ^; F
cout<<*InviVal<<endl;" P' R3 F5 w! f( v P
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
8 f# }& p' W4 w; g6 j; Ireturn *InviVal;
, {! _. ]! n8 H: n. y+ n}
- e/ A3 V6 R8 k) I( A, Y
' b2 s: b: y& ^ r, l- y7 ^6 R針對以上觀念,改遊戲就很簡單,
) k+ F5 h) V: }& I6 D一開始我們先初始化數值,輸入'?', o- j7 R# a7 D# F
接著開始無敵時,輸入'+',
7 {) v4 h: K. l$ x; Z0 j8 L S接著我們知道無敵時間會開始變動,# B) Y4 f$ V" `" M1 I; B
以上例來說時間開始減少,每隔一段時間輸入'-',
9 x6 ]) w, U4 M* G8 j; ^+ R最後沒有無敵效果了,輸入'!' 或是 '0'。/ p! w4 r: @0 \3 l3 I9 W
. ?( ]1 r. a+ D) ~( a記憶體地址經由演算法篩選後,只會剩下幾個,
0 i" p+ V5 i3 D5 v. P# M0 I3 R; C2 z( xtry 一下,你要的地址就出現了。
- |. }0 L! k! a7 O j+ r: k! a& {3 L* `2 P8 i1 Y* n0 k" J/ v; Q9 U* q# s
P.S.以上程式已經Run過,沒有問題。; k3 z/ k% o, j. c7 P; g- q3 U8 A* N
+ k3 J2 w+ S8 F. b3 F[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|