|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 $ g: U, h1 v8 x& H9 A+ t* K' b
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
7 {7 ~) G; ~* W! }7 j0 x6 |- {3 y) Y/ N6 L
其實修改無敵很容易,
5 q$ B' b8 g8 `: t' C就以遊戲程式設計的觀點來說,; Y# j9 P! R1 u5 q* y6 K
一開始我會將人物無敵數值設定為0
+ j* J( K' y+ ~8 {+ Iex:
5 S0 h/ t d5 u: J0 ^! I#define InvisibleInit 0
3 o# D/ h0 [* C2 K$ h4 b E0 o. ? {1 m- ~" K9 f+ w
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
8 Y$ G. |& }( |% R4 _呼叫設定函數2 i) G# d7 V1 S) Y) w% Q- ?
ex:
3 I! V0 i3 v- S( i" s ^BYTE InviIniVal(EVENT event,BYTE SetVal)
8 l1 j- K, P0 X+ e x' o4 \{. c9 r+ s: B) ]
//Deal event ...! N x& L5 j6 ]4 U- d! K
: G; T! u- w- T; k; ]0 \4 D7 s
//Deal InitVal* T0 p6 R, i0 _! O6 e7 ~+ D; E
BYTE ret = 0;
0 O8 y( {7 K1 [3 I" JSetVal+=InvisibleInit;
* r& w% B' k1 I( mret += SetVal ;
% V6 K4 F; p* c% y8 G% \2 i, c8 ]return ret;
+ E8 ]" o2 _( |8 Q} ) e. C; u& q) V$ n6 G
0 k0 H/ f% S" f3 q6 k; L# Y) ~ Q最後關切的函數當然是遞減函數:5 ^" `7 V' [2 I# h$ f
ex:% G# F; h, h. ~) X0 o
BYTE DecInviVal(BYTE *InviVal)0 q: ?5 H) O8 S9 S. x% w& N# K2 ?( A
{4 W" z6 I- T0 s+ h* @8 ]2 n
cout<<*InviVal<<endl;$ c R0 ?- [5 C9 X' [
(*InviVal)--; //*InviVal -= DecVal;& x p2 K8 X4 h5 g
cout<<*InviVal<<endl;
: _9 ~8 i4 d- S; E8 G(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
& o Z0 ^& i7 s5 l. areturn *InviVal;
# c% W) {* u/ d" J+ x}- r7 @3 Q. } ^, w* \& `, }7 c3 n! }
; O7 y1 O& r/ g9 x0 i) g$ O
針對以上觀念,改遊戲就很簡單,
" E& y, M+ T& H( ]一開始我們先初始化數值,輸入'?',) @7 j# j3 W" {0 |1 C9 I
接著開始無敵時,輸入'+'," ^) `5 Y6 q! a1 y, m% e
接著我們知道無敵時間會開始變動,
, n. J- p7 H4 C# m- x: k" ^以上例來說時間開始減少,每隔一段時間輸入'-',
0 e; M$ {1 F5 B1 ?最後沒有無敵效果了,輸入'!' 或是 '0'。
- \1 q/ b8 P3 U/ ^: m8 _* G% {
. y1 ?, u* A5 d2 \; D, E記憶體地址經由演算法篩選後,只會剩下幾個,& S" v3 o0 ?+ k
try 一下,你要的地址就出現了。' z) a. J- @6 p% S9 r, U
3 G( t* i) L s9 _
P.S.以上程式已經Run過,沒有問題。
- [9 K7 U7 U6 b7 s9 t( U5 d0 X1 f" ~- S o) @0 {
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|