|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
( h+ J$ t% Q: u' p6 f主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
! F) k( U; V* o6 \; @: n8 w ~( d( I' u# e7 \, j
其實修改無敵很容易,
' _1 \* u7 e/ W% F! _% k/ N5 R. d就以遊戲程式設計的觀點來說,
; i0 |/ F( u2 @2 {一開始我會將人物無敵數值設定為0
% k) x5 a3 n1 a1 N. {4 u. }ex: + Q2 ^0 h9 k+ v/ |
#define InvisibleInit 05 ]; n* r$ L. O3 l: o
+ C" t0 ?3 E- P3 H+ A
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
) y8 U, s6 X6 T: G! E; f呼叫設定函數, N1 p; d* M/ B6 ?1 ~8 I0 n, Z+ A$ Q" u
ex:
7 X: Z+ N0 S/ M) q$ @BYTE InviIniVal(EVENT event,BYTE SetVal)
2 E. B( M9 ? d, k% k{
0 O% }5 ~. K9 F% v' d& v+ {7 a% t//Deal event ...) W2 [: m" ~! ?) U i" c* [3 k
$ G: @- r0 b6 k+ [! |//Deal InitVal# h: ^) `. h2 U+ ?, I: z
BYTE ret = 0;/ Z# Z3 B3 p6 b2 w
SetVal+=InvisibleInit;
" \$ X# y# v* b. f; I* Nret += SetVal ;
4 K5 M, |7 m! u, J* E0 Oreturn ret;
2 g; i7 ?% Q* ?$ ?5 `! P}
7 Q$ ?3 a9 {0 V+ \" g2 c8 ^ m% Q0 A9 h0 W5 y* U F* I+ `2 u6 w
最後關切的函數當然是遞減函數:" o6 p) [& S/ E. \
ex:5 @3 Q7 U3 m+ Z5 o
BYTE DecInviVal(BYTE *InviVal)
: Q5 u' S# }; C, n9 a2 A6 _9 Q{) N- i4 ^8 ~) ?) m1 p o
cout<<*InviVal<<endl;, u9 F4 M, C0 o% r+ t
(*InviVal)--; //*InviVal -= DecVal;6 \6 g" |/ r- y, T4 c9 N c& `
cout<<*InviVal<<endl;/ U# q% N: h; c- ~' h
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
5 r6 b2 I' g1 g+ q; @1 k3 L/ w5 U! Lreturn *InviVal;4 ]; \2 L; X8 m; a
}
6 _" p5 j: X6 [5 {1 l8 j! ~; y+ P' S5 O1 |: d
針對以上觀念,改遊戲就很簡單,
( v( u& y% q, P5 F! H5 p+ l: ]一開始我們先初始化數值,輸入'?',# U u& ` t! G8 ?) l
接著開始無敵時,輸入'+',* i! M8 a) c+ C
接著我們知道無敵時間會開始變動,
, D4 i7 S$ _# f2 P以上例來說時間開始減少,每隔一段時間輸入'-',/ e, t: j2 L$ e5 q. A7 W+ N/ W6 }) @
最後沒有無敵效果了,輸入'!' 或是 '0'。% L ? o! o ?! e
* ?0 M( a# ]$ a! P
記憶體地址經由演算法篩選後,只會剩下幾個,& @5 l0 i4 _! r: I. {- J" o
try 一下,你要的地址就出現了。
) j6 b5 Z4 |6 s7 A2 W8 d! s" b% B3 w/ v& l+ n4 \( V* G
P.S.以上程式已經Run過,沒有問題。
! y% g. \# D8 \' h3 o
" o# v: r1 k* u9 q4 h+ P: }[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|