|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 1 m& E( n7 G. Z( S5 O
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 , |% Z& J3 T+ W5 l7 B) i" K5 \
4 a) x4 y% P/ b8 p' J其實修改無敵很容易,
5 a l9 f" t' A. }就以遊戲程式設計的觀點來說,2 P. c: j8 P# ^
一開始我會將人物無敵數值設定為0$ b5 U6 e. P$ s( k3 z, H
ex:
0 ?1 ?5 B9 N3 P9 _7 Y#define InvisibleInit 0% N$ i# m9 I9 o$ P$ `) F* m: Z" \
; S& P/ @* t# ~! r
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),6 _1 Q) A+ H" @0 ?3 K5 Y
呼叫設定函數
- ~; V- i- k# f6 K+ h+ `, K/ v1 Tex:0 `: v: k- K0 J4 w8 V& c; ?
BYTE InviIniVal(EVENT event,BYTE SetVal): @% y# v0 Q* }6 y0 y5 X" [8 [
{% p* d; X! o$ }6 x- {$ ^% O' T% l4 h
//Deal event ...
1 N. x- F8 B L, A @; T$ }1 c6 X9 \" l) d
//Deal InitVal. U. p$ `( @4 ^: X5 P5 d
BYTE ret = 0;& Z. H6 J/ O+ _4 K- L! \
SetVal+=InvisibleInit;
+ {3 h _) P; A) j% g8 W3 cret += SetVal ;
$ c5 u) z" z* m4 g4 h+ C6 [return ret;
* u- Y' v1 P2 O} , h0 h( T) v. t. v& C! Z* l& H
( Z! j9 f6 M8 n1 F9 E最後關切的函數當然是遞減函數:0 Y3 [1 }5 N, k+ d- f
ex:5 g, Z6 Q+ C$ Q2 x9 e' B
BYTE DecInviVal(BYTE *InviVal)+ i n$ y! h! X# ]1 t! a
{
6 J3 f9 o3 f$ |' R9 Y6 |+ O/ ecout<<*InviVal<<endl;
- x1 p/ m3 @( e: ?% q% Y8 l(*InviVal)--; //*InviVal -= DecVal;) G0 o3 v( O! a/ x
cout<<*InviVal<<endl;8 n1 R# Q) z, ~( T8 z7 n- }
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
5 o \) K9 k: a. }( Z, `6 s+ dreturn *InviVal;' g. }0 A6 N/ w( v
}
# b# @# [; O; y% u8 n7 o% J
! H4 w. d3 E2 w% h& B針對以上觀念,改遊戲就很簡單,$ V7 u2 {. O: `+ ~. t' w# v
一開始我們先初始化數值,輸入'?',) P3 J) h+ a3 T- \
接著開始無敵時,輸入'+',
; `# U+ x: R) ~6 q' h. _- }接著我們知道無敵時間會開始變動,: i/ }+ q9 P- M4 t( Z
以上例來說時間開始減少,每隔一段時間輸入'-',/ A" J- M! D0 ^
最後沒有無敵效果了,輸入'!' 或是 '0'。
) s9 z7 T9 P5 B* P7 W5 B5 \' k
. r& T' v; J% ?6 U3 F記憶體地址經由演算法篩選後,只會剩下幾個,
/ Y$ G% D* Z: H7 y- a' e( O" Otry 一下,你要的地址就出現了。* y9 P9 h- W: U/ P( r8 D' [/ @
5 S D; {: ]5 m; d/ n
P.S.以上程式已經Run過,沒有問題。
" \& ^# O9 C4 y: ?1 E! ?
4 }8 ?2 r6 z' s( G' [: b[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|