|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 + D. C$ I7 j$ r+ |" H, r2 F2 H
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
& a4 n$ ~4 Z+ F/ M3 b# ^: b, Y. ~" C0 t* d: F ^* B" {
其實修改無敵很容易,; H2 a, J6 y @! V7 u0 k
就以遊戲程式設計的觀點來說,
, {7 c3 E9 t, k: m/ \. [一開始我會將人物無敵數值設定為0' P/ h. W6 a. T! V' r B0 Z
ex: ; \) K% a- L5 M6 q' O" \" V
#define InvisibleInit 04 u! r. F6 R# U2 ?7 L
% a& N, v' w+ R4 q8 E; k
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
1 n% X' ^" E3 s# w7 c, o呼叫設定函數/ h4 _/ y9 J3 v9 I
ex:, @$ [# S3 {* B, o& M' {% I8 j8 [
BYTE InviIniVal(EVENT event,BYTE SetVal)
$ ~ C7 x: u5 K" l. b{6 M- ~ T. i+ Z- D8 W. ~1 D8 i
//Deal event ...
( n+ j `& M4 a6 ]% j3 o9 T6 L* ?: ^, L; E: i2 l& }5 F/ z
//Deal InitVal
4 x7 ~5 l" b' C: {+ B$ x$ L- O9 l dBYTE ret = 0;
" L F$ N( e0 i* W' K5 LSetVal+=InvisibleInit;
/ @ }9 G0 i9 F9 d Hret += SetVal ;' \ O# T% K, H0 }7 j
return ret;
! U4 J) y8 Y3 I) _% V' m# |}
5 O. v8 b( L1 G7 q# N, d1 Z2 l4 `. Y; F5 Z* g/ ^7 F' o6 E
最後關切的函數當然是遞減函數:0 w( S9 t0 i% W0 o* `- ^
ex:
& M+ _; k Y2 T, XBYTE DecInviVal(BYTE *InviVal)
# D6 G- z3 N% h/ r; C; K1 T1 T{+ X K! A3 u' w" \6 w8 X
cout<<*InviVal<<endl;
4 d; ~( Z5 |3 }; y(*InviVal)--; //*InviVal -= DecVal;
: J! i/ ]- P5 x. H, ?( M" Vcout<<*InviVal<<endl;
) [2 r5 t) _( X(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;+ }. U# C: s5 g) D) C- G
return *InviVal;9 e4 @1 ~) _; B, c: N4 G P) a
}
; m4 x" N9 d: g, n1 O, y- V- e0 W4 W" j
' |) p: t9 N# c3 a5 W4 }8 N: B針對以上觀念,改遊戲就很簡單,
$ L3 v; ]7 r0 @1 [一開始我們先初始化數值,輸入'?',- s8 O0 p) s6 {
接著開始無敵時,輸入'+',
! W* H2 t& n/ A- z3 c( D接著我們知道無敵時間會開始變動,
. O" I, Y2 s: f1 b d$ S; X! i. ]# t8 ~以上例來說時間開始減少,每隔一段時間輸入'-',
, o6 Q, w3 B) i# Z' b/ ^2 Z( s" J最後沒有無敵效果了,輸入'!' 或是 '0'。
1 _: B3 i& F U9 G: R! {' a) @8 ^
: L! @: Y6 V* G8 ?5 p記憶體地址經由演算法篩選後,只會剩下幾個,' V c2 K3 k5 v; `; s" _
try 一下,你要的地址就出現了。) c7 R6 Q" {+ _! Z, A9 O2 e& U. W
% i, @: o6 {. }' w$ cP.S.以上程式已經Run過,沒有問題。7 e H9 ?* _& c! ]6 B6 g# q
0 A' v4 J. b0 z; `' y U7 r+ S
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|