|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 3 M" x$ Q6 H( Y! v2 ` ~4 Y
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
e( o6 |0 \4 ?: H
8 \% U5 q8 u$ F( I- i其實修改無敵很容易,- ^1 u6 D+ M$ j! S
就以遊戲程式設計的觀點來說,. L7 W8 B# V: j# T* R- A4 h
一開始我會將人物無敵數值設定為0
+ J" l% J i. @; u. {6 jex:
& {3 q8 L n8 K3 \% o$ _#define InvisibleInit 0( S1 Z5 A. z! q1 j7 W- e
* O3 F/ q! w. t G$ x* m然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),, ~) V6 K G7 s _3 B! W. L# o
呼叫設定函數
n, n% s. b& Jex: z. X+ _+ R- t( N
BYTE InviIniVal(EVENT event,BYTE SetVal)
; \. R2 j; t3 o, S( L" g{
% T+ T9 S; G P* B4 S/ c9 U! J1 \//Deal event ...
v" F; H, L: J7 ]/ q, T
- ^: _; U# H5 G& W5 V# h4 s//Deal InitVal
5 x: o2 i& w: W& JBYTE ret = 0;- G" {7 P9 J' [) a; C( Z: _3 u+ r
SetVal+=InvisibleInit;* _5 G, {1 r6 T' H0 H+ ~$ [
ret += SetVal ;6 o5 @) ]5 A$ N
return ret;/ ?( T8 l4 V; f8 [2 [/ u( u4 {! i
} ; K( i* U( T, V+ d o( V
, y) C! M& R& A! i1 ?7 G
最後關切的函數當然是遞減函數:1 b- M9 j) K1 c% c
ex:7 \. e: S- D4 }
BYTE DecInviVal(BYTE *InviVal) M$ _* V, | A' h* z+ R
{. H& \9 ]6 }0 j4 w- h! E
cout<<*InviVal<<endl;
/ w/ R% B4 t* o9 o* F(*InviVal)--; //*InviVal -= DecVal;
' b) O5 d) G: F; Xcout<<*InviVal<<endl;4 ^" Q/ E! P5 G5 S, H
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
$ m T( U I/ qreturn *InviVal;
: H& M4 `8 J# [+ [ j}- t {, s& d8 _
' m s4 d* w& g/ G
針對以上觀念,改遊戲就很簡單,
1 x8 N- D7 O0 V: v6 S- {' Z% |6 w2 G一開始我們先初始化數值,輸入'?',
8 b" i' P8 g; }1 K6 \. y接著開始無敵時,輸入'+',1 i& l) X" O2 n
接著我們知道無敵時間會開始變動,
' k& ?2 U$ n$ ]/ S! V) ^8 n* r以上例來說時間開始減少,每隔一段時間輸入'-',
7 r+ m# s$ s; ~7 G! G$ H最後沒有無敵效果了,輸入'!' 或是 '0'。2 t, ]" K; |5 H/ _
7 O& q# S! ] Q- J! | I% }
記憶體地址經由演算法篩選後,只會剩下幾個,7 G" Z; c& m5 ^+ ~2 ]& v
try 一下,你要的地址就出現了。. t$ ?2 p6 A$ z% F" \7 ?+ Z2 e) p2 R
7 B q5 |# m4 ~( B: M5 B i( ~
P.S.以上程式已經Run過,沒有問題。
* d `3 Q$ P! r6 {. ^1 k
9 D( ]9 P. x6 o3 U: ~7 Y[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|