|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 " K, c& \1 I# x& p4 g+ M
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
6 B9 y, e! p0 d" r8 t* g* M6 j" i* `9 P( t, n+ l( r/ l8 r
其實修改無敵很容易,/ Q) P7 X6 n6 ?9 U
就以遊戲程式設計的觀點來說,
5 f. `% K" y* N一開始我會將人物無敵數值設定為0! t7 y/ B5 k( E7 e
ex: : G# R* G% P' j! u9 p4 l8 ~+ N' |
#define InvisibleInit 09 h0 q1 o+ c: D6 f4 [1 x3 h! v+ }' T
1 y+ n! a) ?6 |1 u: W* a' ~然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),1 y1 I# M( A0 H" `8 H6 m% J2 `
呼叫設定函數# c2 N3 N, F8 y: Q
ex:
# W4 T5 l. {+ cBYTE InviIniVal(EVENT event,BYTE SetVal)8 T% N$ j6 _; J1 e0 S7 b
{
( e! d: M3 v+ R( E6 }. V& m//Deal event .../ y# c5 S9 f: R! z% K q
- [$ i7 c2 D3 ~/ e/ Y
//Deal InitVal
+ ?. I; G/ M( Z& B' p/ FBYTE ret = 0;
4 [5 n' h. _: E G* O% b3 N8 I. K+ DSetVal+=InvisibleInit;+ L6 A- z7 p& Q# B
ret += SetVal ;" J" B) [) |7 Z
return ret;
9 L8 B, R! D- r6 {$ u} 7 Z+ R' S) s+ J% i' a2 p
6 N' ^, ~9 N" m X( s3 l9 \ U最後關切的函數當然是遞減函數:& Z; o0 g% \$ D! g7 p' {9 p
ex:
. l D, U6 M4 C; ^# [. a% WBYTE DecInviVal(BYTE *InviVal)" N( Y! N& ]; U' @
{
- }" U5 u- o6 G0 p5 v6 ccout<<*InviVal<<endl;
% l q0 ^% }8 n(*InviVal)--; //*InviVal -= DecVal;
+ ~5 b* u4 Y: u. V9 }- E6 ~cout<<*InviVal<<endl;
% I, M% U4 c' e1 g* L, t" `% ?' c- N# N(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
" S; H+ h8 g# D" r0 H4 U( G$ F6 ~return *InviVal;) X8 Y. L9 z+ v- z- ]0 i% t
}+ G' p- T2 h$ U
5 Z, w4 ~6 g% {: S3 I/ v" |
針對以上觀念,改遊戲就很簡單,
2 Q- {$ J8 T' O/ P一開始我們先初始化數值,輸入'?',
" m0 ?9 m1 R! ]4 _% k* o接著開始無敵時,輸入'+',4 O% T( K1 t- F: ~( S
接著我們知道無敵時間會開始變動,
4 L; U W( q, Z' R0 ?以上例來說時間開始減少,每隔一段時間輸入'-',' N6 w! k: S2 R2 {
最後沒有無敵效果了,輸入'!' 或是 '0'。+ o# G( {$ r* _6 f* L2 e% A8 c
; M5 j! ^( V/ N V記憶體地址經由演算法篩選後,只會剩下幾個,- W: v1 |7 f: ~1 M: U i$ F0 r) s
try 一下,你要的地址就出現了。
4 ]3 e1 ]5 X! n l8 m/ d* ]
" T* ?6 p% I' T$ u- L$ b0 uP.S.以上程式已經Run過,沒有問題。& N9 C- O2 H5 G" g2 }; X5 i1 l- t
# @! d, l' K" Q9 h2 `& _0 u) O6 o[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|