|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
! l ?' P) n Q; j. {主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 / A" [, H& U2 _, ~# s/ T6 J& J
" w/ T9 b! {* x6 R
其實修改無敵很容易,
. W8 o7 M. J. @6 B就以遊戲程式設計的觀點來說,& g% S- h; H3 G$ ]- b" |% U
一開始我會將人物無敵數值設定為0
9 G% p. [: s8 V9 s( z4 Z2 ^- f8 p9 zex: / K+ L' Z7 {) Y0 [" F
#define InvisibleInit 0
- A" J' [( p% X2 y# X: g9 t
9 Q) `5 b V0 J; n% Y* w然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),6 U6 M: k0 r, [! s. V* | }5 ]
呼叫設定函數8 M4 u1 r/ [* g* \7 h. u8 O8 w
ex:
9 D% s. L& L2 Y/ Q% r- ^& BBYTE InviIniVal(EVENT event,BYTE SetVal)9 O9 e, N/ R% ?8 L' c
{! [2 @0 s( n4 I. Y2 |, K
//Deal event ...
" J. u8 Y1 U, y! e; s- O+ q6 H) Y7 B8 R; }/ B
//Deal InitVal
* L, y3 m% B# _3 v3 z& \. A8 \BYTE ret = 0;
" a4 N5 z m/ Z( Z: _, LSetVal+=InvisibleInit;! g4 a5 o3 } I- m, S
ret += SetVal ;
, Z0 |6 N5 N+ ]4 xreturn ret;
1 R6 g; y) [& p3 G' k3 G} , I* l( c% i4 N! X2 T7 e
2 z) [; [4 M5 e, T- L# l# W
最後關切的函數當然是遞減函數:
0 a- q; ]4 o8 v5 ^ex:" j+ R; Q: K8 t1 ?6 L U! A6 F
BYTE DecInviVal(BYTE *InviVal)( j4 f( Y q- C+ O: Z: D7 k I
{
. V$ y( T7 v6 _; }) x: Vcout<<*InviVal<<endl;$ m% a: |. @" ]9 w
(*InviVal)--; //*InviVal -= DecVal;
5 Q' u% C8 [1 b& v( H4 ~6 D7 Ccout<<*InviVal<<endl;
7 d1 {/ Y* N3 m5 O7 D(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
( {5 H* H9 [- J+ N/ {) @return *InviVal;0 I* h! q% k6 G0 `* q) D: F4 q
}
3 W& N0 O) B1 m5 y. K7 I( G+ u3 L0 Q
2 T0 n- J4 H) G% j針對以上觀念,改遊戲就很簡單,
; ]& \3 `7 }- Y5 X; B2 B一開始我們先初始化數值,輸入'?',6 u( r. m, ^' d6 y
接著開始無敵時,輸入'+',
& Q/ ]- H/ U) t! I- Q接著我們知道無敵時間會開始變動,9 U7 t& E' w8 D8 B1 A$ K8 G8 h; o7 z
以上例來說時間開始減少,每隔一段時間輸入'-',2 G" Y$ m: m T5 U
最後沒有無敵效果了,輸入'!' 或是 '0'。4 N, Y+ V/ ?3 S# R3 x; S
& E1 w" R- @4 i2 f! V+ J( u
記憶體地址經由演算法篩選後,只會剩下幾個,4 K* x5 b/ R6 _) _: s4 I
try 一下,你要的地址就出現了。/ q5 t, Q2 s/ d9 O' j4 I
( i2 ]+ P+ W$ n9 u
P.S.以上程式已經Run過,沒有問題。
4 D! p) D) ]: e
% P0 s) ?3 W; @* ^- P) m2 v. K[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|