|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 0 \* m7 v) d# h7 ~( q
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
7 x8 U# v/ m S' s& f! ~! {1 a* f7 \! P
其實修改無敵很容易,( L* T! k6 B% K
就以遊戲程式設計的觀點來說,6 N9 n6 T' i4 q" p
一開始我會將人物無敵數值設定為0
6 F0 k* O' J* F& P0 W1 p: D3 rex:
1 d8 O( |1 m% c+ `" V2 V#define InvisibleInit 07 }- A" B9 W4 }" H
( N% M+ Y- |- f4 M$ I4 ]' c3 d' h: S
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
! l+ l( A7 D/ B+ z1 \9 {+ F呼叫設定函數
$ l3 ^. o* Y# Qex:# c0 H! ?. u3 m2 I6 h# D" E9 Z5 o
BYTE InviIniVal(EVENT event,BYTE SetVal)
+ {% v3 j: H. C+ o# I8 r2 N{
' k" b+ E' G' {' Z7 G//Deal event ..., w: i6 y' w" I# w
$ G% b% o1 D- e: |//Deal InitVal* }/ y0 u" B: {3 y n8 I) y
BYTE ret = 0;
- i% f B5 M- t$ e4 n4 dSetVal+=InvisibleInit;- w' ?# i" |& B, i! c
ret += SetVal ;" U9 t$ s; v+ V- e3 K: y1 B" m
return ret;/ A2 J5 W- f4 s w& p( G( m3 } g0 |
} ) l& C2 n1 i. p4 r# Y' A: k
+ @, p( R& A" S( g1 U5 C
最後關切的函數當然是遞減函數:
: s9 c8 [( z% g! g3 Y6 Q* Vex:4 a5 ?5 ?6 P @* E
BYTE DecInviVal(BYTE *InviVal)
- z" D+ W, u2 f. U{
! x$ q& }& s {# m/ z6 R) ncout<<*InviVal<<endl;' R" L1 {5 k# R9 ]9 u
(*InviVal)--; //*InviVal -= DecVal;8 f% `- r3 t" g( ^
cout<<*InviVal<<endl;
) E8 y8 Q& G% `. Y' s(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;% `. @7 n7 H5 ?' F3 R% }
return *InviVal;0 Z7 j) f1 Y7 \* J: l
}
2 F) B' |) X! I. ~% Z8 ` L7 e6 t" J* G% ~ {, L4 A
針對以上觀念,改遊戲就很簡單,2 K& w! I2 a9 a7 g
一開始我們先初始化數值,輸入'?',* |: u0 E, Y( ]0 [0 [4 L. U
接著開始無敵時,輸入'+',
. ?2 |5 T; x4 ?/ K! _$ D接著我們知道無敵時間會開始變動,
& _4 p7 C! A2 t# Q' C1 V! b! ]8 ^以上例來說時間開始減少,每隔一段時間輸入'-',) ^2 m; z; k5 Z
最後沒有無敵效果了,輸入'!' 或是 '0'。% ?. A& ^' m0 U+ l
2 S' P/ ^+ Y: v% `7 A8 }記憶體地址經由演算法篩選後,只會剩下幾個,
# X* a1 N$ q3 b3 T* G9 Dtry 一下,你要的地址就出現了。 y' [# n2 m! i0 e1 Y5 K5 f
5 M( p- N" D9 x7 r5 D
P.S.以上程式已經Run過,沒有問題。 p9 P7 f% B( j: V, O
, ^' s& W: w$ [" g* ?5 ^) t
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|