|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
! z# x7 E. C9 ^7 b主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
+ R; y' Z7 |4 W; V
# W7 `7 Z+ ~6 V: k# s- t其實修改無敵很容易,; v; R. Y# y6 Q' l
就以遊戲程式設計的觀點來說,# ] \4 O, J" _' f* u2 b8 |
一開始我會將人物無敵數值設定為0
3 R) ?6 b4 J/ U. B1 m5 h& ~ex: / t, C9 Y& q' ]* i6 }
#define InvisibleInit 0: D" n9 [7 T x: \& `% z) v
* [. m) I. b! x) M1 u) b然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),3 I3 O6 ~! g& h0 f
呼叫設定函數
* }3 Z# q/ |7 N0 g1 ?8 E S6 i: bex:* u3 _& ~. Z8 ^" i- z" s6 G
BYTE InviIniVal(EVENT event,BYTE SetVal)& L% A$ v# g! J) d0 N9 \8 p
{0 p2 ~, T& h& W( W; ^
//Deal event ...2 C9 G. |. f! H/ r- a% \
3 U* f# M5 G) h ?//Deal InitVal
" m/ G5 E8 [# W- Y( Q/ t# [BYTE ret = 0;
& u8 v' y: q6 g& {7 U2 mSetVal+=InvisibleInit;
0 t" m0 o1 r- q) J/ E5 @ret += SetVal ;, I" H0 s$ j% `3 X% o( n7 X6 A/ y
return ret;# H0 m6 r' `7 U" Z
}
: O6 @8 M8 P& u# i7 F; X
3 e4 v8 c! I) F9 n+ q最後關切的函數當然是遞減函數:
/ i* M# p7 x9 N$ {1 K3 n9 Z% v+ Hex:9 o! T2 e- l" F; f
BYTE DecInviVal(BYTE *InviVal)5 L' f9 d/ P+ N2 D5 w
{
4 T, @0 v% U, a. u U2 m& O; A6 T4 Vcout<<*InviVal<<endl;
0 ]2 H8 n9 P; B0 D- ?9 L, T# g0 Q(*InviVal)--; //*InviVal -= DecVal;
, P( w) }/ q, D1 c( w4 j, ccout<<*InviVal<<endl;- X. V3 K3 u( D! n+ T" p
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;( O9 Y9 V1 m% B
return *InviVal;/ ^3 d( M' T3 U3 D& Z
}
4 F; t' S+ s D- x, t& P3 ~# n0 ]/ Z- [$ M8 e# ^
針對以上觀念,改遊戲就很簡單,# K- t. M* W$ T: x& ]5 H
一開始我們先初始化數值,輸入'?',6 m7 I, B$ R. Z$ K2 {. I. }
接著開始無敵時,輸入'+',# g5 D4 R( j5 U: a' g6 N3 `9 r' E. t) ?! a
接著我們知道無敵時間會開始變動,
4 Z1 C# S+ ?2 _/ W7 n7 |以上例來說時間開始減少,每隔一段時間輸入'-',
8 J4 c! B& X5 W3 P6 g8 O( g最後沒有無敵效果了,輸入'!' 或是 '0'。
0 T. O5 I" @; u. P. i8 r* N0 v* Q" [" z" m# ?# N; K. _& C( [
記憶體地址經由演算法篩選後,只會剩下幾個,8 W$ p+ v! m: Z4 Z
try 一下,你要的地址就出現了。+ _2 Q7 k) j4 D& p' o: ?7 P! H
D" X! j* T* u& ^4 r/ ?P.S.以上程式已經Run過,沒有問題。
/ A& z: Q Q# R* e: f6 x5 M1 K; S% Q, C, y
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|