|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
! b1 H. J6 F+ w- `主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 - _5 P3 K4 y3 V# P7 s1 s" \
3 `6 F B; n: ?1 @6 d; Z+ t# t
其實修改無敵很容易,9 o y' r, `" D, M9 D r6 m3 @) ~
就以遊戲程式設計的觀點來說,
: Y6 k3 W& ^4 W3 V) S* M: Z一開始我會將人物無敵數值設定為0" V9 g! j9 ]- U: d4 c7 @4 b- c) F* f
ex:
4 x. m/ k/ z/ [- \; ~0 H( K. C$ Z#define InvisibleInit 0
1 n% m$ e7 [7 B' R
0 n* R* S C' C! {" j& K然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
* n4 K |" t, \" r呼叫設定函數. i0 _8 I/ L5 P5 j8 G- U' {
ex:
7 w" d) c+ U2 k9 s7 I3 d0 B2 aBYTE InviIniVal(EVENT event,BYTE SetVal)4 h" _; e6 N* I. ^4 }+ g* b
{
: D7 Q- b4 m e$ C5 n/ l3 u6 Z//Deal event ...* A$ t# k. y T& _* D
( a% L/ c$ u* O, i$ n//Deal InitVal) i6 W0 b, u+ { Y: S
BYTE ret = 0;! F+ [( G: @- G# t R3 {
SetVal+=InvisibleInit;$ f' G( X; g' ]& v+ |: e
ret += SetVal ; H3 I2 ]5 }/ E- w
return ret;
$ t" M' X( p7 q5 P: ~6 g9 N* C; K! i} # h# N% I7 p8 l2 J
- C; s7 O. x2 R- ~" O最後關切的函數當然是遞減函數:
, c+ l! `0 Y. _/ _. Wex:
8 m }2 C3 |, n& ?, ^& m; A$ _BYTE DecInviVal(BYTE *InviVal)% y+ _( a2 A( s6 k2 C+ A
{
5 ^" Z$ e F! w( k4 `; V' I) e3 n5 Xcout<<*InviVal<<endl; f- K6 h" W6 e( o7 Z: W5 y
(*InviVal)--; //*InviVal -= DecVal;, U8 B* E: S1 `3 O
cout<<*InviVal<<endl;
i% \. n1 Y+ \- E7 A& b! _(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;0 u6 s1 K+ A4 n; d1 c
return *InviVal;
5 r8 {0 }( |8 ~. L' _; U" U}/ {+ P) X8 R% ]3 O/ `* _* ?
" C7 Z7 p H$ ]$ x' A: F
針對以上觀念,改遊戲就很簡單,+ l/ q. l8 G& c* j- S
一開始我們先初始化數值,輸入'?',, I8 U% X1 Y g2 C. q) ~
接著開始無敵時,輸入'+',
- f, t' W1 a$ {接著我們知道無敵時間會開始變動,9 Y0 C9 i+ P8 b9 d- M; H' \( a
以上例來說時間開始減少,每隔一段時間輸入'-',
. [3 K+ }! i( p; k0 G2 j7 f: U最後沒有無敵效果了,輸入'!' 或是 '0'。
0 a: e# d/ \8 O- N
4 v+ R7 B% ~4 K記憶體地址經由演算法篩選後,只會剩下幾個,
V4 m6 B; h0 Z2 }try 一下,你要的地址就出現了。
) D, h; T1 [% o9 U" ]# [* }8 w9 M) g+ U( s
P.S.以上程式已經Run過,沒有問題。
6 C* [' s' ^0 m6 C" v8 _) N1 K: |% l# G; @! s" n: T* e- \0 J
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|