|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
# ?3 \% R- x, d2 k主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 7 p, T' B" u! ?! ~
( k0 p1 e3 [9 A1 r其實修改無敵很容易,2 v& ~/ G- z {2 n7 l
就以遊戲程式設計的觀點來說,/ Z& ]. \3 ^+ O9 E4 w8 h2 J
一開始我會將人物無敵數值設定為0( m4 S/ t# f' c9 |* W( B
ex: 3 H& D8 D: f' b8 p$ j
#define InvisibleInit 0
4 a! M- U$ f+ j D% y d* H7 H' H' B$ o4 n- g4 A- K( A
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),3 e1 i c5 k& }5 ^
呼叫設定函數
6 l% I7 @3 z Q Sex:/ b4 D% G/ |/ V# x W8 X! I
BYTE InviIniVal(EVENT event,BYTE SetVal)- E: `2 r8 K% u, \9 Z* H# z
{
+ v1 E) x7 R A/ n//Deal event ...4 q8 i* x5 w% |2 X
N# T( m/ t% I& ^: P( z
//Deal InitVal
* a" d7 |% Y4 x( jBYTE ret = 0;+ Y/ ~9 |9 D. V" y) W- j
SetVal+=InvisibleInit;- o1 Z+ g; J/ d3 R# L
ret += SetVal ;6 x( `+ P1 J( }, \' u# n8 ~
return ret;5 A0 g& J( ? h& f, Z' |7 W
} 6 [' K; [4 y- @) n% A' x/ b/ c# u: Z
4 _' ~5 m; T% z4 \6 e
最後關切的函數當然是遞減函數:
( W& ]/ x: Q+ O: Iex:
. M- X% G6 n! C3 Z7 l% fBYTE DecInviVal(BYTE *InviVal)
& Q4 u# U" _% ~{7 {$ K# D& V4 Z
cout<<*InviVal<<endl;
0 G! o& P+ Y7 u7 v; d9 I6 j6 g. P3 s(*InviVal)--; //*InviVal -= DecVal;
2 H3 r: t0 b% k1 Y0 O# F' U |( {9 @7 fcout<<*InviVal<<endl;% A1 {1 `4 F K
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
3 s* ~! h- B8 l& p# D% s. Creturn *InviVal;
' }5 o7 I- X$ B5 {7 i& ?9 P}
& g( `6 t/ K h- Y J: f
( C' S& X* N1 _* ^2 V, h# O* ^針對以上觀念,改遊戲就很簡單,
. Q$ V" d: q b0 C4 ~2 o" I- e一開始我們先初始化數值,輸入'?',
" u2 r$ b8 U" q4 Z1 f接著開始無敵時,輸入'+',
; P: c( p6 P/ {. p4 N! B接著我們知道無敵時間會開始變動,4 H/ r1 B& ^/ \% s* \, k
以上例來說時間開始減少,每隔一段時間輸入'-',3 J8 E. d H% Y8 }) L Y
最後沒有無敵效果了,輸入'!' 或是 '0'。
. u! [* U5 n% B
' w+ t! b( l% O4 l# y) r5 X記憶體地址經由演算法篩選後,只會剩下幾個,
! q0 `, S; D. [$ K. Jtry 一下,你要的地址就出現了。
; d3 M' o3 x6 [. A" ^% c, k6 i' N, X( i
P.S.以上程式已經Run過,沒有問題。% U+ R/ @6 v- [/ ]+ Z Y
8 P( W: X! k0 r4 w* d[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|