|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
( ]# S$ m' }% ]& M' L主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
; B: F- _% r5 L4 D4 |" }
0 J" [( ^/ \! \其實修改無敵很容易,
% c( u& t, t1 a m# [6 t就以遊戲程式設計的觀點來說,
7 I6 }4 B) Z& K) O9 t, k一開始我會將人物無敵數值設定為0
# c; ?, e5 ]# ^$ b r Aex: 3 [( p% n7 n$ l' }3 O
#define InvisibleInit 0! S4 B% d2 a* W- [7 ]
* J0 i7 A9 ^0 o0 O& e' V然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
* i; ^0 y, U: o J: f& w5 M0 q+ q' Z呼叫設定函數$ w& B/ b5 N3 J. D& A% B
ex:: {) }! Z d, v1 z
BYTE InviIniVal(EVENT event,BYTE SetVal)
3 t w' f$ N3 w0 r2 O{
! I# U+ q5 V6 k; u& k: a//Deal event ...
3 E0 o% ~! f7 D6 {8 a3 z9 V- c! S* [# }2 m7 w
//Deal InitVal
1 h/ R+ ^: O" B9 CBYTE ret = 0;6 ~$ y' V/ Q g, t
SetVal+=InvisibleInit;
4 s' w k7 A" T' Fret += SetVal ;/ ?* ]' p. t7 G! x2 B$ D# N
return ret;
* s$ P+ ^) {5 v7 N) _) B, @/ Y}
) J8 e" @* S( ]: `$ n4 I
2 N2 {. I! L& |* _+ g最後關切的函數當然是遞減函數:# h' }4 V4 m$ _; ^3 |9 |
ex:
! ~, q* `; M: g" W5 b* E( y: dBYTE DecInviVal(BYTE *InviVal)
; M+ w" _- ]- v& {& U+ s{
4 a- _$ U$ ?1 \" |! ^cout<<*InviVal<<endl;
. q8 y d8 V+ P. D# F0 R; h% _% R(*InviVal)--; //*InviVal -= DecVal;" v& ~# W( R3 T" ^ o5 V
cout<<*InviVal<<endl;% s0 @0 g4 w: w7 O
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
" a2 | Z6 x0 y& ]; f5 Breturn *InviVal;7 Z- ^+ z+ v4 n" h- [& V8 i
}) m: U k: j) S- d
, |. U! v0 Q& I' N% k. o
針對以上觀念,改遊戲就很簡單,3 J+ a7 s! u/ P* q6 ^
一開始我們先初始化數值,輸入'?',
! G/ P- s! e) y# s8 b, O接著開始無敵時,輸入'+',
) b3 w8 ~5 F: E7 h( n) f6 R接著我們知道無敵時間會開始變動,& W W. ]) u- p$ j9 Y
以上例來說時間開始減少,每隔一段時間輸入'-',
4 l* ]! X7 k, F3 n/ V4 r% Y7 Q1 Y最後沒有無敵效果了,輸入'!' 或是 '0'。1 O! u' k) S0 T* f! t
! F& p+ T0 V' @+ Y
記憶體地址經由演算法篩選後,只會剩下幾個,
7 \/ F. Z! K9 M! h& @, f. S+ N3 r5 Btry 一下,你要的地址就出現了。% F2 L( O9 P& e9 U- V
1 S' I: V3 ~1 k& B N3 M
P.S.以上程式已經Run過,沒有問題。
! b% Y n$ @+ R; H9 {/ K9 b( }- F U8 K8 ~* a% t5 J
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|