|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
; v" [( c0 E, r; R& [主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
2 R% U% i7 `5 @
) n2 Q& a, B- T6 N; n其實修改無敵很容易,$ p- s! S. q% P& G7 l% R
就以遊戲程式設計的觀點來說," W: K4 _7 h3 L
一開始我會將人物無敵數值設定為0
/ o$ h' I; F B$ v: z, `ex:
( U8 }& _/ a1 e#define InvisibleInit 0
) |* Q8 j' L" H" @/ D0 R- \
& R/ Q" H9 m! K3 Q1 ?, U然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),1 s2 ]1 D8 z$ }, ]# P& x
呼叫設定函數
- K2 A2 l& V; A8 O9 h% f* P. Fex:
' @& }+ |2 D, M L2 ? X5 [BYTE InviIniVal(EVENT event,BYTE SetVal)
. S# A R4 S1 P% Y8 i{
1 u2 B; u! K& r* S( m- \' q8 |6 E//Deal event ...$ W# a7 t1 C0 T$ M2 M+ L+ D K( s
0 { j; C2 p! D5 B//Deal InitVal
' E% U) n8 g( Y0 `( }/ V) }. WBYTE ret = 0;
9 O1 Y' H& @& j$ m' V D% C aSetVal+=InvisibleInit;
# `: Q/ b M' f. a' s5 @ret += SetVal ;
( N& T; @. \; B" Dreturn ret;/ H0 C, S Y) Q. x7 ?$ i" E# o3 n
}
! M9 K4 _/ G& A7 q; d. Y# I6 V9 K
: y) q% t$ f7 Y# d0 A2 C最後關切的函數當然是遞減函數:
/ N. M) h2 n- b6 r" @; Eex:& z: a2 ]6 L% Q
BYTE DecInviVal(BYTE *InviVal)
, x" ]/ D, X* {1 _, z8 o{3 ?: _* J: E$ M: w" W: b
cout<<*InviVal<<endl;
" S+ B6 l( u' A) Y) E; Y' X6 S(*InviVal)--; //*InviVal -= DecVal;
+ T7 k0 j) s4 K0 u; Zcout<<*InviVal<<endl;% h/ v ~# W+ R, C! U6 r$ n
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;* \. \ J5 o/ M+ _3 b
return *InviVal;
: v) G) a" D& G# q}; X* Y/ j; t8 T2 Y# l
9 g2 `1 I0 n7 @$ W
針對以上觀念,改遊戲就很簡單,9 b- C" K0 v& B
一開始我們先初始化數值,輸入'?',2 S0 I/ r) f! n% _( n
接著開始無敵時,輸入'+',
. T- a3 e! \ B" Z) A接著我們知道無敵時間會開始變動,
2 ~5 [# D m7 i- @以上例來說時間開始減少,每隔一段時間輸入'-',
$ q K2 N2 e5 F, P( p' s4 A e最後沒有無敵效果了,輸入'!' 或是 '0'。0 O- ^( A% f8 i4 l
: U7 E. q% w; q1 @記憶體地址經由演算法篩選後,只會剩下幾個,: C( @! M/ z' Z& j, _% C2 ^% c
try 一下,你要的地址就出現了。
: I1 x6 S+ A+ R7 r, h5 N t
% F6 z6 Z: N) Y, u4 eP.S.以上程式已經Run過,沒有問題。/ V2 h, T; j. V6 H+ L" \
( T( F; u, x% @. n& i) I[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|