|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 ]8 P/ p1 L0 e+ J
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
6 I6 I7 i0 _/ Q( z* z" A
# J) M' p+ D) |. x$ v其實修改無敵很容易,
1 Z" \6 ]# K% ~ u就以遊戲程式設計的觀點來說,6 A1 y5 U" M# T/ ]5 v" s1 |: Q
一開始我會將人物無敵數值設定為0: _! |' P7 ~1 r% ?* U7 H9 V. D
ex:
: P7 j2 C9 X, |" J" C, X0 \8 d5 P. j6 r#define InvisibleInit 0
- ?! s) |2 ?$ h( f- Z) o0 m- }6 S6 I4 w* Z5 l
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),1 y) d2 ^! a- i
呼叫設定函數1 D( {: d4 f4 N1 L
ex:& y. ?% t/ x6 g! p
BYTE InviIniVal(EVENT event,BYTE SetVal)% T5 P5 u' C' O) L* @) L( K1 F
{
0 {5 B4 ?, K6 @$ i//Deal event ...
- e( R; e* Z5 F1 |# S& F
8 Q2 e/ K, A8 g4 V7 h$ ~//Deal InitVal
# L$ j& u0 U5 b8 U$ N E' D% KBYTE ret = 0;
! d2 P9 @! w; _: ^/ q# p' |7 kSetVal+=InvisibleInit;
2 [1 v$ }, v: ^1 j. fret += SetVal ;
% O h" b, l; e4 Preturn ret;
W4 n @, k$ d5 e1 Z} ' H X" r0 ~' N% }" U! e
& q; i& @7 k6 ^- Y3 i0 o
最後關切的函數當然是遞減函數:6 G0 R6 L' a2 y Q1 k1 ]: [4 c
ex:- M9 y; q. ]" U: g- U, t
BYTE DecInviVal(BYTE *InviVal); A9 N2 F6 k! h3 h6 K
{" Z1 M3 D H: x
cout<<*InviVal<<endl;; m7 [0 b- j# F, T4 D
(*InviVal)--; //*InviVal -= DecVal;
. `5 W- O, |* K1 dcout<<*InviVal<<endl;
" p5 `! j, @, ~+ J; q5 z(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;6 v3 `3 C3 l/ s3 V6 | e
return *InviVal;" d! g' M" |* u
}
2 g8 {8 \. e- }) U n3 x# e5 e4 [8 Z. L3 V0 M) z
針對以上觀念,改遊戲就很簡單,
! g4 o' G2 Z# k5 [4 y2 W- D一開始我們先初始化數值,輸入'?',
$ z- i3 E$ X6 h7 J: F, h接著開始無敵時,輸入'+',
5 p$ _* ~* ]# d8 Q# ~& d接著我們知道無敵時間會開始變動,
, Q# ?2 F0 r: J以上例來說時間開始減少,每隔一段時間輸入'-',
3 G3 ]3 M8 ~ @% c# W- \9 o最後沒有無敵效果了,輸入'!' 或是 '0'。
6 W! M5 R8 u/ o z
/ x* S4 x/ l4 k3 }4 G% @8 A r記憶體地址經由演算法篩選後,只會剩下幾個,. y1 m6 a1 c# {( p* c
try 一下,你要的地址就出現了。
( [, N2 D. u w5 g& V0 V: M8 W+ E) O( v& @1 C6 g9 u
P.S.以上程式已經Run過,沒有問題。+ s t, ^$ F7 H9 ^ T. s- w7 m
3 c* _# G) o8 `9 H+ A2 {) f' R! s
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|