|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 d; w# ^7 g* j: c. s; q) W
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
* Y+ o9 A# V: r4 S3 r$ u: {, V2 M ]8 ]5 w# L6 J7 {
其實修改無敵很容易,. S2 Q2 B/ i- o1 R R* h9 G
就以遊戲程式設計的觀點來說,2 D4 w7 a! u# a9 m. N6 }" r& g
一開始我會將人物無敵數值設定為0
" `. z J0 E0 v8 Z7 M- |ex:
# ?# r- m" H( Q* J#define InvisibleInit 0/ x/ M3 t" Y, F& a5 X( Z
B" [. x; s! v [" m# Q! D7 m. |
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),4 R5 `1 O% @1 w; h8 X! d" f
呼叫設定函數0 c" x0 b* {8 P4 T$ O
ex:. L% Z! f9 D# `. ^) Z
BYTE InviIniVal(EVENT event,BYTE SetVal)
9 ^- A. U' H+ |# Y% f5 {8 L( b{
# z4 d: ?- r: J; E/ B0 y- `' k; Z& [//Deal event ...6 t+ S7 ~# K, y K, o
8 [3 V0 `& y6 p4 H3 x& E1 \" C; E//Deal InitVal! ^8 q5 d. c* Z
BYTE ret = 0;
. g. d$ a. [' s4 p3 HSetVal+=InvisibleInit;% s$ l' G$ C% {! h4 F9 [
ret += SetVal ;7 K. r# `* Q K, P8 _
return ret;/ Y9 M) u8 b( I1 x' P+ p
}
8 O9 B, C8 p- [+ p# b+ I. T
7 z; p4 \' Z% ~6 D: @7 q3 @最後關切的函數當然是遞減函數: K) ~/ h9 i* j2 b9 `# q6 {4 f q
ex:" E# D+ B& _6 p* K5 n
BYTE DecInviVal(BYTE *InviVal)
, o S; }7 j2 O3 F7 H& t7 q{
2 l. v2 d2 M* i$ U" A# Bcout<<*InviVal<<endl;
: _0 B) _1 | K2 h/ p7 @4 U( @5 M(*InviVal)--; //*InviVal -= DecVal;# P' }5 ^5 K5 L
cout<<*InviVal<<endl;
& T9 B. U3 I2 _(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
2 @1 o: q0 S5 s) y2 Z& C( Freturn *InviVal;
9 f2 d4 X5 b9 @3 @' a}+ J0 x8 i/ P9 q' f1 P. F& r; j" K
' R! n: N9 \6 B9 H, V: d& ~
針對以上觀念,改遊戲就很簡單, k& q: h9 O. f$ {
一開始我們先初始化數值,輸入'?'," ~0 `6 d- w# n$ R7 s( [
接著開始無敵時,輸入'+',
& T. m& B/ _( n& y# [) q( U8 G接著我們知道無敵時間會開始變動,( `3 f# U2 W7 l+ Q- F% ]/ {4 j
以上例來說時間開始減少,每隔一段時間輸入'-',5 V, X* Q% O+ H; L( C
最後沒有無敵效果了,輸入'!' 或是 '0'。
, R6 O0 C" h1 @# ]5 D8 L7 E
5 C) R. Y9 s: p2 l7 a' m記憶體地址經由演算法篩選後,只會剩下幾個,9 s& @/ I; Q. f/ l# u. M; R
try 一下,你要的地址就出現了。; z( ~4 H( K( u* V( x2 A
Q: K; U! e8 i7 I4 `P.S.以上程式已經Run過,沒有問題。4 |% E* j: ?! r& K& w
" R p& k; u4 l3 U* y[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|