|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
$ }' E9 @7 y$ b+ J" ]: m* L主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
* `# m4 F/ k, ^* d& [ w! ~+ G7 A' ^: P8 u- o- i
其實修改無敵很容易,
5 f! b, i. Q. h$ c( O8 m就以遊戲程式設計的觀點來說,
$ d7 e. x6 l0 x4 `一開始我會將人物無敵數值設定為01 C% `8 ^* S/ U" G9 T; N" o' Z
ex: 9 ]+ c' @ B$ U& @7 T/ j1 E# }- G
#define InvisibleInit 0$ Q& J& B! k4 W2 w( y
$ p: r4 P0 r, U% e. x( J然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
O2 f0 m# n L) I- L9 |' P" ~呼叫設定函數
! d% u: ^, ~" G7 Oex:
P, s1 g6 A: Y) i* f& f5 OBYTE InviIniVal(EVENT event,BYTE SetVal)
( E# Z: n, h3 P, L0 }9 z: H{5 q6 E3 j3 \2 L* g
//Deal event ...
8 o6 X# H' x# Y6 L% g+ I! H. v% u7 h: r- P- j0 Y& Y7 [; {+ V
//Deal InitVal; _" H7 t: f* [4 s2 g
BYTE ret = 0;3 A' T: ?0 o: ~7 y ?7 `& h
SetVal+=InvisibleInit;
+ N8 M5 n! ?& k5 @2 I' D: \ret += SetVal ;
' t3 k- K4 E6 ereturn ret;
( m4 V q) I' b( J& f; V}
0 }9 F: V7 B7 _" F$ O* [/ `$ F V/ V6 T0 A% c$ u, \* d' _4 t( `; K
最後關切的函數當然是遞減函數:
1 b7 b- c# @! W3 w3 \8 G" r' U$ tex:
: X* a' r w' eBYTE DecInviVal(BYTE *InviVal)
- v* N. ~9 H4 V3 `: P7 w- \{; ]5 g$ G( }- |; L
cout<<*InviVal<<endl;
4 x4 F0 a5 x$ S( {3 I, X(*InviVal)--; //*InviVal -= DecVal;
- Y3 Y4 x+ ^$ x3 f* bcout<<*InviVal<<endl;
9 t. m- F/ X* M) Z2 ^$ x(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
1 S! S; c3 e; ]return *InviVal;* g2 m8 I# p/ ~! F! U
}
' I g/ {- f9 X; A
- `, Y2 }+ _* l針對以上觀念,改遊戲就很簡單,. |& d& m7 \, c0 a9 T
一開始我們先初始化數值,輸入'?',5 X& W. {: [0 `9 q. D* Z @
接著開始無敵時,輸入'+',: F; |1 ?* N5 N/ {! P- I5 Y! `
接著我們知道無敵時間會開始變動,: u2 A" h$ n( n6 P# {; q7 r
以上例來說時間開始減少,每隔一段時間輸入'-',
6 W2 ^" J, |) O2 X) r8 D最後沒有無敵效果了,輸入'!' 或是 '0'。
3 L# c5 n+ c0 E4 }9 m% o/ q( P4 d4 q
記憶體地址經由演算法篩選後,只會剩下幾個,
, |& A& s& j7 o% H& g* Jtry 一下,你要的地址就出現了。 _, e! @) z. J( o
" w4 N2 P O( rP.S.以上程式已經Run過,沒有問題。
5 m' X6 ?" o( r v2 ~- S8 V5 d
# b% L a' n' z9 r[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|