|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
2 F$ x" x s6 ~) s; `5 u主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
0 R5 z8 T9 V( I: L! A% Z0 c
6 E) v+ G: ]# w1 S0 E其實修改無敵很容易,
, [2 j6 U, b! ]6 y& Y- h就以遊戲程式設計的觀點來說,
4 J2 [' n6 W) |5 ~一開始我會將人物無敵數值設定為0. X4 d; m8 a9 Q+ s, u2 Q
ex:
! [3 z8 Q5 {, X+ T) ^#define InvisibleInit 05 Z# Q: f' O, x( w1 c
& J, }/ e' j) C* C( q! m5 y然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
5 [, }+ O" ]) d8 u0 {呼叫設定函數
- Y( m; c; v) F5 fex:; M# o3 o$ k7 ]6 J
BYTE InviIniVal(EVENT event,BYTE SetVal)
& b8 M# F* w' ^; q" e{4 w& s; @# `( I* |: K: H
//Deal event ...
+ W. @ M W# h1 G
' J, R6 L- z, C9 x% T& F* |//Deal InitVal
3 O. a. C5 K a8 [BYTE ret = 0;6 Y- `4 W$ \0 |+ o! F- i! i& |
SetVal+=InvisibleInit;
+ j" y8 w. ^0 `7 {8 d/ z. {ret += SetVal ;
! P* u* Z( T7 r7 f2 [return ret;$ N* _: p# u# W( t3 K% l. h* S9 C
}
5 I7 F2 P' @5 `) | R1 l, X& U
% ]. M9 w p7 i0 [) n% r6 f6 j最後關切的函數當然是遞減函數:" f6 c* \: F6 Y
ex:
! x/ q7 Q$ n" u, _. k) d3 ~7 {# _BYTE DecInviVal(BYTE *InviVal)
. U8 y8 _6 N0 _ N; G( {{
1 E! v, b7 z* b1 @% D% Zcout<<*InviVal<<endl;6 w% S; j2 w5 r$ s, C& |6 M& q( z
(*InviVal)--; //*InviVal -= DecVal;" {0 v' ~. n1 |1 N' c. b
cout<<*InviVal<<endl;
* P* h' E3 }/ I# Q/ X0 Y4 Z(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
2 N7 R8 ^; i- F4 Creturn *InviVal;
" ~' |# B0 }# H8 |5 }( Q4 @}: m( ^& B* e/ Z) h9 T
0 T1 w3 M0 c5 H. B3 u. @" U3 r
針對以上觀念,改遊戲就很簡單,1 r7 v' G( l+ Q9 h+ `
一開始我們先初始化數值,輸入'?',- \4 k+ H" d: \8 a
接著開始無敵時,輸入'+',
# V7 S0 n; u$ w: Y接著我們知道無敵時間會開始變動,
& b1 L4 O+ m) [# _0 v9 i以上例來說時間開始減少,每隔一段時間輸入'-',. k/ t3 U+ s8 m2 ~! X! r( H) A# J( q
最後沒有無敵效果了,輸入'!' 或是 '0'。
5 P% |. A) m+ q8 A9 P# R1 `, f& d. |" i/ p5 E" C1 p
記憶體地址經由演算法篩選後,只會剩下幾個,7 o, s9 w# J' C% v+ B0 o, [
try 一下,你要的地址就出現了。# y% Z3 b1 U& ^3 X8 k! d+ z7 U
7 F* j9 z, V6 [% p6 X" b0 P: C
P.S.以上程式已經Run過,沒有問題。* ]( t/ t3 ]1 R+ f; K/ W
9 q$ o) a- Y4 a8 q: J
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|