|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
. I) X7 o7 K& ?, n3 V3 n主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 % g/ K U2 K5 S1 N8 a
4 E( M: J. p( n* u) y" L# Y
其實修改無敵很容易,
% ~/ @; B; p$ `7 O就以遊戲程式設計的觀點來說,8 Y) Y( ` M0 s# P( D. G0 y
一開始我會將人物無敵數值設定為0( b4 v0 a+ k. s7 d
ex:
% _5 I: \8 |* u* C' j#define InvisibleInit 0
8 y4 w m+ d' k) W
: ^# B& I& u* F, d9 K$ n然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),6 X( W- e; I3 R& I( v0 V
呼叫設定函數0 t9 P' y9 z6 I# z+ j6 e5 x2 X; |
ex:
: P6 z$ T, J+ dBYTE InviIniVal(EVENT event,BYTE SetVal)
+ s. R L- n* L6 _+ D1 i7 H* Q" v. M{9 w) s- _- _: @/ X+ W- \
//Deal event ...
+ k/ |& Z+ e+ a0 }2 i6 X) ^) |5 t
//Deal InitVal
! t7 i* {6 n, i8 O/ c. C" S. ^' r* JBYTE ret = 0;
5 O/ o! b8 v+ m$ v# S; y2 uSetVal+=InvisibleInit;
+ O2 j' g6 e0 J# dret += SetVal ;" G. O! h2 v5 `% T. H. D. ?. Y/ r
return ret;" ?3 T. t k7 _8 ~% r3 ]
} ; h- i6 W3 c/ Q7 X G
/ i6 E% S) c2 j: u% d
最後關切的函數當然是遞減函數:
; z% n9 o8 k! v) \3 q5 oex:
# K0 y. R' u0 E! uBYTE DecInviVal(BYTE *InviVal)6 E& i, [, R* F! l$ |# _% o
{
' z/ L F) R# @$ I9 C+ vcout<<*InviVal<<endl;! B( x5 i$ d$ u; `5 e
(*InviVal)--; //*InviVal -= DecVal;1 @: B' q& i5 _ y4 b1 v& [+ i& k
cout<<*InviVal<<endl;, i9 \4 j, A e9 w& w, g
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
9 H7 { G1 n9 a Creturn *InviVal;' M* o9 K5 y* ~- v5 W
}
) [1 X6 u5 D2 o- X% ^. m8 ~% b; B
8 g( {) K5 `: e* o; w4 V$ n3 [針對以上觀念,改遊戲就很簡單,' u. ?- d, q1 G! E+ i
一開始我們先初始化數值,輸入'?',. B. y( B' V" Z2 E) H; b
接著開始無敵時,輸入'+',% B. L1 ^* ~; ?: G9 A; w
接著我們知道無敵時間會開始變動,' O5 W3 m ?" L+ S& k$ y' G# R! k
以上例來說時間開始減少,每隔一段時間輸入'-',
7 J. K) x3 G$ h最後沒有無敵效果了,輸入'!' 或是 '0'。
( |6 W# G& u; l/ J/ F2 g9 Y0 f2 K n* f
記憶體地址經由演算法篩選後,只會剩下幾個,
$ q" Y4 d: K& X H$ f/ Ntry 一下,你要的地址就出現了。
; n0 p7 e' a ~7 c/ x" G) Y& K7 E5 O& c, v
P.S.以上程式已經Run過,沒有問題。
3 q8 X+ @/ T; Q
! W& d/ X& U0 Z8 |[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|