|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 3 F6 V6 J7 ~* A: S' |
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
4 K+ l# c$ T' z7 c+ m1 u3 r Y+ `: u
其實修改無敵很容易,
5 P) ~- R% X( R O8 c7 j& M; w就以遊戲程式設計的觀點來說,
, |7 k# q3 J' `4 y. Y+ z) x一開始我會將人物無敵數值設定為0
& b( P. V$ F% b* K, [5 s7 k/ rex: 1 g/ \1 w& s" i( L( D
#define InvisibleInit 0
) P8 M2 X4 ~ h3 Y, y8 x+ v/ q* L& X3 k
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),( J! Y& S/ ^+ ~2 }! R* d
呼叫設定函數4 \ k& b! ^. @% G& u0 Q7 @! k
ex:& x( k; c1 t) H h: F6 M
BYTE InviIniVal(EVENT event,BYTE SetVal)& Q4 U/ }: q0 [0 w
{
' @. b# Q% V5 ]4 F% Y) o//Deal event ...
0 ?7 A, W& a5 _
9 G5 L3 l: U* x! k//Deal InitVal
: c4 }1 ?) q4 ?& w3 C8 @3 j2 eBYTE ret = 0;$ m2 R% s' B6 }' L
SetVal+=InvisibleInit;- a, s- Q) Y+ [
ret += SetVal ;, \$ c; W' k2 e, `* x- _! b
return ret;
% ]7 Q5 y5 x# m5 v: }/ l} & Y/ [2 H( p; d& [1 ~
8 m& E8 q1 p6 b1 z1 }6 K
最後關切的函數當然是遞減函數:
) y9 m; b$ n$ \% ~ex:
& t: ?& h, e8 w7 w1 RBYTE DecInviVal(BYTE *InviVal)
, y/ A$ u% g% k; _{
- |) K. j" ?- H! ?, gcout<<*InviVal<<endl;
$ }8 H' l! O- s N(*InviVal)--; //*InviVal -= DecVal;& x0 b+ f R! u& D/ M% B7 c
cout<<*InviVal<<endl;
7 J+ P- o! \- \- A0 S( s(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;( E7 H8 P# m; P i- o
return *InviVal;
7 ~4 a% d1 t! Q& q' I: V}4 L+ _2 z3 f) i, p7 a/ n+ `6 Y
0 Z6 y# {4 l/ }( w針對以上觀念,改遊戲就很簡單,
0 E' r9 B0 G/ ~' y3 k一開始我們先初始化數值,輸入'?',
- n: E1 l: X; | U6 u+ T S接著開始無敵時,輸入'+',
& E/ R5 r; U1 \4 M接著我們知道無敵時間會開始變動,
0 U/ [+ W0 S2 P: a n以上例來說時間開始減少,每隔一段時間輸入'-',
/ a& R1 V# P, p8 N( ^最後沒有無敵效果了,輸入'!' 或是 '0'。
/ L/ y: e& O8 e+ c: Y' v. A" M
7 E) Z. k/ g' `! L+ x5 m記憶體地址經由演算法篩選後,只會剩下幾個,. X0 ]: v5 q! X! k9 S& {" p
try 一下,你要的地址就出現了。 c$ s1 M0 g! U) R1 b9 _
8 d+ e7 B, D! ~P.S.以上程式已經Run過,沒有問題。" K3 D1 t! g9 d: z
6 z% ]- y2 Y' B2 D' L8 F[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|