|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 " \) ~) Y+ D; J0 O- C
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
- ~ D+ e1 C- q5 L$ @
, h: y7 V* t% m, u- w/ m其實修改無敵很容易,9 p0 f4 B: K) H( P2 D8 q
就以遊戲程式設計的觀點來說,
6 s8 O" D: [, E* Z一開始我會將人物無敵數值設定為01 c! m: H- c3 I# K- U y4 }- n9 a
ex: 2 C* M q4 Y8 K2 s
#define InvisibleInit 0
; ]( d1 P0 Z5 j* a3 I& k( O3 m: v, j c% t6 v4 }/ V2 i! V& R
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
. t% x9 }9 ~; ?! X' N# R呼叫設定函數
. j5 w( R( C8 E% zex:' S8 H) _1 M4 V A7 e: P% c% O
BYTE InviIniVal(EVENT event,BYTE SetVal)
+ B2 e, W6 p1 |. a( U! J6 s{
$ o. b9 M+ Q' a, ]9 Z1 y! a4 _4 }//Deal event ...% B0 q9 H7 ]% N0 [6 W2 M" a* y
4 l/ O$ Y' L- T4 a% n
//Deal InitVal5 x* [8 N0 F3 {0 U' {6 B, X2 H# p
BYTE ret = 0;
9 @6 A0 W9 V# I$ A( E" s/ o3 KSetVal+=InvisibleInit;+ S) Y9 X8 u% K; D1 X5 r0 d- O2 O
ret += SetVal ;
! P/ z. ]. a4 j6 `$ I: m. ^return ret;" D% |* C9 S" p+ L9 X3 X
}
' @& a) u* _+ h) t0 V: G
: g! ]5 f& f f4 e1 t1 s2 e+ S最後關切的函數當然是遞減函數:" T8 n; t, G! g
ex:
; V, U- W7 h5 Y5 O0 x4 y7 bBYTE DecInviVal(BYTE *InviVal)
2 V$ a' Y* r* ^) N; ~ Z+ o {$ X/ G{% n; g0 c5 W3 h/ S( Y
cout<<*InviVal<<endl;3 k# B# u* r* {/ v- @. |5 p/ o. c( j
(*InviVal)--; //*InviVal -= DecVal;
2 h2 Y& s% M& g# Vcout<<*InviVal<<endl;* S6 D! t0 I! T5 O' i. {& Z* N
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;; v2 F0 p0 l7 p/ V+ n
return *InviVal;
& w3 D. @ E" b! ^( S}
$ W0 M( m7 }) ^; q- n* ~! y+ `* X2 Z V7 @
針對以上觀念,改遊戲就很簡單,. D8 S1 {8 V0 }' K# P
一開始我們先初始化數值,輸入'?',
* q/ _5 P9 ~3 n8 E$ l接著開始無敵時,輸入'+',( W1 W" Q: i" n. {! E$ n
接著我們知道無敵時間會開始變動,* V9 k% r L" I) c
以上例來說時間開始減少,每隔一段時間輸入'-',% q1 i1 z Y$ n8 p0 r
最後沒有無敵效果了,輸入'!' 或是 '0'。
' y8 o3 T# {5 ^ @
8 x4 g% C" \' r+ X% W/ A記憶體地址經由演算法篩選後,只會剩下幾個,( ~8 z3 q* p" v. m: R, n" A
try 一下,你要的地址就出現了。
$ k( K$ o( V" e( }* u, x, C* }- z
P.S.以上程式已經Run過,沒有問題。
0 a" Q/ _. f& o
3 ]& C9 p, A6 e: y5 @[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|