|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
/ e1 m( P& N1 e5 h* d主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ' i, F8 f5 H8 c* t# ~3 N8 K$ ]; I
7 K2 E/ a8 f' K, j' Z( K
其實修改無敵很容易,8 L* r. i% x" T$ Z
就以遊戲程式設計的觀點來說,3 P g& s% w8 g4 ~* l" e
一開始我會將人物無敵數值設定為0
" p9 j7 T( E9 lex: Z, G& K! a6 x% p9 j
#define InvisibleInit 0' p! u/ Z/ w) N O& k; X( |% J
, {( O t% a O* p2 i然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
& l1 G+ |% k# N3 w0 F: J7 b( [呼叫設定函數. V6 ]3 d" O6 p% p4 x
ex:
/ S) G* { q: hBYTE InviIniVal(EVENT event,BYTE SetVal)# e1 \" L0 [5 c& F* l( [
{3 }4 X9 s. [3 ~9 N
//Deal event ...
$ r, b& m$ t$ ?& |( o, M% L$ h0 d5 B; ^( S* h. X) t
//Deal InitVal x k( L# H+ q0 T$ H/ e' M8 O4 O, s
BYTE ret = 0;
k+ {) a0 s8 ~% E# b- u+ f: xSetVal+=InvisibleInit; Z( ?% y6 F/ n
ret += SetVal ; ^) E/ ^+ A5 c
return ret;7 }% L9 x' W7 G
} ! u! w2 {' d: i
; K1 _! g9 d$ ] f4 K( A! B
最後關切的函數當然是遞減函數:5 i+ |6 ]. F" \4 z& o, Y* V% R' A
ex:; d1 }9 R. h N# k6 S
BYTE DecInviVal(BYTE *InviVal). l4 g& G4 }/ ]/ o6 s; u. O
{3 P+ t' }; M* u) n
cout<<*InviVal<<endl;' n# ?- P. q$ R6 b7 q. j
(*InviVal)--; //*InviVal -= DecVal;! j, ^$ S) {) ?3 l9 ?! O0 k( u
cout<<*InviVal<<endl;
- q$ [9 a! X3 I/ N(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
+ w5 S3 p, y1 Z; J1 m: hreturn *InviVal;1 x* L; X- A# N9 d j6 {
}2 j8 Q7 ?. S5 a0 i' ~/ j9 L
: P+ [2 B" E8 g( ?2 G
針對以上觀念,改遊戲就很簡單,
/ @2 A6 ^0 z3 |3 q% r一開始我們先初始化數值,輸入'?',
3 T/ U; H1 Z; n( \接著開始無敵時,輸入'+',! G& B1 P$ ~+ M8 c7 q) e
接著我們知道無敵時間會開始變動,( X4 _8 {' l& m) N; y% K
以上例來說時間開始減少,每隔一段時間輸入'-',+ H$ H* r2 m5 R1 B
最後沒有無敵效果了,輸入'!' 或是 '0'。
) J& w3 u- w6 L1 @2 ?; t; q' i
+ a9 g J5 a- j' @記憶體地址經由演算法篩選後,只會剩下幾個,- v1 T' o- m; {. d4 u/ E
try 一下,你要的地址就出現了。
' l' k6 W& Z' Y8 Q1 @8 L0 ^) J1 E* L) c4 Q, N r, c: U7 D% c) n
P.S.以上程式已經Run過,沒有問題。8 ~8 F- d5 F/ L8 w# H
, q+ N$ i6 L$ A! t9 O# A( w
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|