|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
f s, m: L$ g; d' I( U0 k. c主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 $ r% z" O) M7 E# l" w: c
$ b' z8 }4 n" @$ ?1 y8 t2 r' y e其實修改無敵很容易,( c( c7 v/ |# Y
就以遊戲程式設計的觀點來說,1 E$ t# E4 r, f7 C( p
一開始我會將人物無敵數值設定為0: p2 l) n* ^0 B( E* {$ q
ex:
- n% x0 e% ?* c3 l8 j9 `2 L0 }#define InvisibleInit 0
{7 E2 D* M& Q4 Q+ ^$ k. X) L; b0 \8 W! h
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),# d% @9 h& n" S* \" O* q
呼叫設定函數' H( L# K1 K$ x5 H' j) d3 m
ex:9 T# U3 S& b6 G: Y( F
BYTE InviIniVal(EVENT event,BYTE SetVal)
! G! n7 ?; G; L1 X4 R: J; v{2 X1 _5 q+ F% O- {
//Deal event ...
, u# v' R6 v g8 p+ s
9 W E/ ?( W7 G9 T2 z( o/ @; n7 t//Deal InitVal& a0 ?& y w( w" t" O5 _
BYTE ret = 0;3 D1 n) U" r+ C: U! R; Z
SetVal+=InvisibleInit;
/ e( o- t/ F- j' w3 rret += SetVal ;% j& Y: C, F/ b8 f9 Y: X
return ret;" N2 F( {" ^# y+ u5 K- z' B
}
( m. A$ `; R5 N8 E' ]& l# v; C( x* `# q' V- D# N5 G
最後關切的函數當然是遞減函數:# l! W# j* ^) h- G
ex:& \4 E* i0 U* J% B. y! t
BYTE DecInviVal(BYTE *InviVal)
, T5 A3 r7 G: }! N{
, d, p; L, d3 r+ y. M6 ~cout<<*InviVal<<endl;3 I' N9 m/ H9 M
(*InviVal)--; //*InviVal -= DecVal;$ S3 ^4 z: ?6 I9 d
cout<<*InviVal<<endl;
' @$ |3 o2 I% m+ O+ M- ]+ i( q(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
- |7 [# M- E% p/ \% z6 l$ Sreturn *InviVal;
8 X: g) e" q: E; F5 I3 I3 }}
0 J: ~+ \# G3 A1 [4 a( K' l
0 p; F( E7 v& S4 |/ w針對以上觀念,改遊戲就很簡單,) B3 u/ R' L" }! s5 z* t e
一開始我們先初始化數值,輸入'?',, T& u' {* w* \& D9 D1 T" {
接著開始無敵時,輸入'+',
+ q1 B: M8 J& L$ n6 k接著我們知道無敵時間會開始變動,6 I5 F! s+ d, G+ R) b
以上例來說時間開始減少,每隔一段時間輸入'-',' O# Z6 C4 w$ x* C; S$ i
最後沒有無敵效果了,輸入'!' 或是 '0'。
+ r. q; O# j1 }3 _! P4 f
+ B# v) a8 d2 Q1 x. O8 v4 g; h& Z記憶體地址經由演算法篩選後,只會剩下幾個,7 @# X+ Y6 k2 ^" [6 s4 Z
try 一下,你要的地址就出現了。# g% R& R9 g# C4 W) ~; i% W! O
+ J3 T0 o3 `" VP.S.以上程式已經Run過,沒有問題。
/ i, @) x- F) h- {! X1 m
: d) O: f$ `" H7 Z, G[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|