|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
7 d [' Y: m9 [! f/ }2 B主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 - ?7 @" s1 {9 p) r) v
2 y6 J# F/ W7 t
其實修改無敵很容易,
( r% ?. ^- u. X0 {. L就以遊戲程式設計的觀點來說,
5 ^. t7 g; C6 k I一開始我會將人物無敵數值設定為0
& H7 _# g& q& o1 fex:
! c$ `4 g( J9 f( p1 J+ ?, j#define InvisibleInit 0
0 J* [/ N1 o2 S7 e! N1 c6 F+ c/ ]1 I- ~9 j. ~' g! q# @- d% z4 y
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
. h! ?- F, u/ ~7 \+ `呼叫設定函數
|7 k- y$ `7 ]0 H( sex:4 C6 O1 M) E3 U. O! n: f
BYTE InviIniVal(EVENT event,BYTE SetVal)
9 ~7 H( v# D0 ~2 q, W$ Z# i{
8 I5 K) W/ C6 i//Deal event ...
1 q/ W& B0 a% Y% t4 H( g: \: t5 F; i
//Deal InitVal/ U% ?6 `0 a* d" z
BYTE ret = 0;
" M; P. |+ a& }2 sSetVal+=InvisibleInit;
) f8 N; T" i2 O: X1 W3 vret += SetVal ;
a4 @9 ]8 T* Y0 W. creturn ret;% Z r4 a: F% \/ R7 A0 [
}
$ j* K" ?4 k0 o( Y% E; l1 Y3 Y: p! A
最後關切的函數當然是遞減函數:
) b+ r! g# m' j4 mex:' R" O2 L; S; Q; _+ J& X9 ~
BYTE DecInviVal(BYTE *InviVal)
" f4 e c$ }. m- m. |$ E{2 |" |5 p1 q& @0 f9 u
cout<<*InviVal<<endl;
2 N0 Z1 a& Z0 v2 h# C(*InviVal)--; //*InviVal -= DecVal;. d) Y9 T7 E& J" F% {8 Q
cout<<*InviVal<<endl; V7 r9 Y) d' f
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
0 O" B) v, t8 I+ B" ?7 q# Zreturn *InviVal;* W! X* I' V9 Q. J( z
}
7 O8 h2 R8 \# r; S+ [% ?2 n
4 l* {# N1 H7 j3 |; N7 f, t針對以上觀念,改遊戲就很簡單,
b0 p# r! I' p( z( b. B一開始我們先初始化數值,輸入'?',7 Y& c a4 g' v+ b0 T9 N
接著開始無敵時,輸入'+',$ C3 C% T% ?- x$ `
接著我們知道無敵時間會開始變動,
9 {+ k: V( P$ q ~* S( r6 V以上例來說時間開始減少,每隔一段時間輸入'-',
: S z' Z' I/ G' r1 e8 |( c最後沒有無敵效果了,輸入'!' 或是 '0'。
6 t1 A" D6 s+ o# y8 L: T' g5 V2 Y. [# ?% m6 L- \4 x
記憶體地址經由演算法篩選後,只會剩下幾個,( u9 f8 ]1 F% T M3 g
try 一下,你要的地址就出現了。
}% I* ?, _7 `3 v; ?" D2 y& l. Z7 Z2 Q! f
P.S.以上程式已經Run過,沒有問題。* U t l3 q3 k) T' d2 \+ H
0 m$ i& h4 v2 v) D: r[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|