|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 . k: d" Z6 \9 n- Q8 l5 I& O
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
I" r. P/ G* D$ e& @! L& a; Q# \! U: ~( x9 e8 C0 I1 S; ~6 s; l- L
其實修改無敵很容易,
( \& C4 S8 {- S1 f* i就以遊戲程式設計的觀點來說,0 J4 a6 _4 p2 t5 s# I ^) X
一開始我會將人物無敵數值設定為0
9 g, T1 N9 o8 |$ X5 z7 F; |5 tex:
5 d. x5 t) s0 d* R! y#define InvisibleInit 0% M' {& V( J0 V. Q5 X3 P7 r
; B+ U. \& Z6 z( h$ M, `9 f然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
" y' q* a% j$ h5 _" o呼叫設定函數# p& J/ l! ~8 \' D
ex:
" ]) A, p6 M2 w( BBYTE InviIniVal(EVENT event,BYTE SetVal)
4 R& j$ s: Z7 Z) @! Y) e0 P{! {8 Z$ h+ h% z) P& @' f3 U
//Deal event ...! T0 C7 v$ ^# V) x' J
- l/ ^) x& e+ {- c( Y) f, M- K//Deal InitVal
3 E5 {8 |2 r' X+ V6 [BYTE ret = 0;: z8 Y1 R5 j8 U6 ?7 L' _
SetVal+=InvisibleInit;
7 }3 L/ X y+ A7 |7 nret += SetVal ;
8 |* H1 [# B3 n* `/ Z' {/ \- zreturn ret;$ b# S5 N% H7 X" l4 I/ i
} 4 o" R( m: B- h% y
" y* S0 f, M. L4 S& w5 b e
最後關切的函數當然是遞減函數:
9 @# Z/ u E; Y8 Pex:" x3 \( \$ E: m5 m2 J
BYTE DecInviVal(BYTE *InviVal)& }, \% p# U# M7 h7 `
{1 C. g4 y+ s9 ?' A5 X- j: Y# E5 U
cout<<*InviVal<<endl;
6 N1 v/ ]% J4 S' C(*InviVal)--; //*InviVal -= DecVal;; h; t1 p6 j% \) e9 m
cout<<*InviVal<<endl;
& v3 G& P* s. t(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
7 @7 o* N; z. z. H$ R* M, z) Vreturn *InviVal;2 L& t) X' \" S1 T' @. B0 r# V
}' i7 _: V% ?$ B* h4 w- y7 {+ C
& E* b1 ?7 A3 T: L+ P0 A3 r
針對以上觀念,改遊戲就很簡單,5 {, z2 n* q& R: }! W' D- h# P
一開始我們先初始化數值,輸入'?',2 m$ a1 O! {* X8 [. M
接著開始無敵時,輸入'+',$ S4 I: a( s% I! d
接著我們知道無敵時間會開始變動,
( r, S$ M' M6 Z' W以上例來說時間開始減少,每隔一段時間輸入'-',: L E$ E3 u0 n* w l( F
最後沒有無敵效果了,輸入'!' 或是 '0'。
; b! M2 ?" q3 i8 A4 e$ @( z- k
$ u0 Y* x4 d G& n6 x o" b7 f5 E記憶體地址經由演算法篩選後,只會剩下幾個,
5 v5 B$ N3 Y" w3 b! z _1 Jtry 一下,你要的地址就出現了。4 m9 w/ a2 i' q$ Z! E" b; @6 X
# y7 A8 s' I$ oP.S.以上程式已經Run過,沒有問題。1 b3 O- E. U+ H v( l" C' D
$ r0 n& }# X' v1 R7 y) U7 L[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|