|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 # Z5 ]2 g6 y2 f8 }
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 , `, w7 n0 C6 w# T
0 G$ K1 T" a! i; z9 u6 S
其實修改無敵很容易,
2 x( f' q$ _1 O0 Q: P. T. o. A就以遊戲程式設計的觀點來說,* b8 G: I# k- L1 l: x6 E( H5 Y
一開始我會將人物無敵數值設定為0
; w3 u8 M- P6 v+ J. h7 {5 Uex: 6 V q( G- H: A9 o1 r
#define InvisibleInit 0
# R3 H# p3 ]7 @( [ @ v2 `5 _, G3 M6 i- A7 m: Q# i9 k
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
/ x% k( E% }( ]" V( l6 ?呼叫設定函數8 J5 N3 i! k/ [" B7 n
ex:
) H/ t/ a, H; J0 iBYTE InviIniVal(EVENT event,BYTE SetVal)
' u, A& d; x+ Q {{
) k' h. c( f; Z# o//Deal event ...
4 g% v6 d: ~' ~
' X5 m. X2 ]8 |& H3 y- n: T/ m//Deal InitVal/ N, I+ |! m+ m, X& R* `) C' K- ?
BYTE ret = 0;
: Q. S! D2 c1 hSetVal+=InvisibleInit;
# M' q+ A1 f( K, N5 g: `% Kret += SetVal ;
+ P0 D& t( e Q# C+ j( areturn ret;' H+ a3 v$ N) o6 l3 v0 @- m+ ^
}
( M' `1 u; f7 j8 o0 R' N
, s; ^! Y! q6 u4 Y0 d: M最後關切的函數當然是遞減函數:0 N8 I# @. k5 v$ Q* _4 _
ex:
J7 O" r c! d- s; s8 GBYTE DecInviVal(BYTE *InviVal)7 ~' ?0 O2 g ~! [; h& D5 a* T% y
{
5 w1 a3 N! L* x9 k: ucout<<*InviVal<<endl;
3 N5 R8 `( s2 H+ }! C(*InviVal)--; //*InviVal -= DecVal;) N. d6 C" G' k; e5 Q
cout<<*InviVal<<endl;: n; y4 l. @- u! P d3 c
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
1 o1 j: W; V8 d# ]return *InviVal;
% W7 G# I6 G# L! T( w' }, d3 l+ K}
% z4 M/ P# v( N0 Z
1 r7 v* f: m+ V# F# c針對以上觀念,改遊戲就很簡單,
3 ]+ y2 [4 R# w9 P. a0 ~: P( X u一開始我們先初始化數值,輸入'?',
: I+ c/ O8 b/ B& z: K4 B接著開始無敵時,輸入'+',
/ y+ |5 S# z3 L' g7 L* ^接著我們知道無敵時間會開始變動,
- ?" I* k) Y$ i1 C以上例來說時間開始減少,每隔一段時間輸入'-',( n! g0 d3 n. s
最後沒有無敵效果了,輸入'!' 或是 '0'。& I& M1 [' L) S. i" P( Q
0 I4 X& ^: m+ W a( @* K( i# T3 V( V記憶體地址經由演算法篩選後,只會剩下幾個,: B9 W Z- Q, D: s( ]9 ~
try 一下,你要的地址就出現了。
/ M" [0 Y% ~) o. G$ b# S* I6 X0 N8 T) V- d7 [1 _% s, ~- B
P.S.以上程式已經Run過,沒有問題。2 @" Y. I" m; f( h& x, N7 Y! M# R
/ [: ] V+ x& j- C5 o; {+ I, q
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|