|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
n& I3 e/ V+ J) N主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
: d5 z+ p6 H! T" x6 N: P6 z! _. r6 [
其實修改無敵很容易,
5 [" e; c5 X* ^! ?就以遊戲程式設計的觀點來說,
7 O4 ~5 ?0 s+ r6 ?一開始我會將人物無敵數值設定為0
9 m: N0 W9 f {& O! Z3 E0 D& Dex:
) [ \ I/ x! f+ W9 I, k6 U) x#define InvisibleInit 06 j" B$ Z5 x, ~ B/ j7 W' x
V& G8 l, l0 R8 ^% t- ^% m然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),* Q0 |6 C7 C4 a8 Q6 @7 i* k- W; B
呼叫設定函數
1 H+ l' ?, K) A% d( M5 R9 yex:/ `" H1 f( `& Z
BYTE InviIniVal(EVENT event,BYTE SetVal)
x1 [' }7 H% ^$ ~, p{. d+ v- }0 O+ n: v: \! H$ Q- q0 ^3 H
//Deal event ...6 D* n( v# U! d) U1 L2 c$ j
) ~# o; L3 b4 _" G% Y$ G, f2 G& c
//Deal InitVal
0 f6 L' W) y0 e4 V$ B, ]+ fBYTE ret = 0;+ C- [( Y( x/ P
SetVal+=InvisibleInit;
. S2 W& R3 z( g* c. Z. K. {- f a$ x9 |ret += SetVal ;
/ Y2 b9 f8 R2 F( Vreturn ret;& D+ i. L6 x+ z$ v
}
( K1 p8 W* ~0 I2 P. p7 G5 f0 w$ B) U! p
最後關切的函數當然是遞減函數:# u* p! n4 H3 I4 D" X3 f2 v
ex:' k8 X5 u. _5 [* k2 h% x
BYTE DecInviVal(BYTE *InviVal)* E7 Q7 h" C C9 v7 ~' Z
{
) @& k4 I6 [" e8 w. ^cout<<*InviVal<<endl;
. F1 l7 j1 f. E U# |/ Y! H) y(*InviVal)--; //*InviVal -= DecVal;7 k+ g, G- T) Z4 j+ @6 B
cout<<*InviVal<<endl;0 _* w o! ^- x' v; s
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
, @6 x8 _6 n1 B9 S) p+ X1 Q3 preturn *InviVal;: S' L' i9 i6 s6 h, y& W
}+ X! k0 W3 n" r
. `* m+ t) U0 t
針對以上觀念,改遊戲就很簡單,3 C |4 K' F8 D( C0 D
一開始我們先初始化數值,輸入'?',
: _( @: V) a5 D$ W接著開始無敵時,輸入'+',9 |% C. q4 V. N! h& W$ O9 s% m" E
接著我們知道無敵時間會開始變動," l7 M1 k* g" ~( N7 J
以上例來說時間開始減少,每隔一段時間輸入'-',
: f( {/ ~' ]( R$ W最後沒有無敵效果了,輸入'!' 或是 '0'。7 j1 }( h; ?1 O6 U
b. _* E9 E( V! b+ \; S
記憶體地址經由演算法篩選後,只會剩下幾個,/ K; Y( p- X; B! I4 T2 R
try 一下,你要的地址就出現了。* p+ D7 B. u2 E/ A" q6 \
+ O( m: f v$ }9 e( n2 `' N
P.S.以上程式已經Run過,沒有問題。
1 C! f2 |% u& w. P2 r9 l7 R. y6 z7 x/ b+ D7 p, g! M3 o
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|