|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
* z7 [. I, ?; f主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
$ l- \' w! q8 M# J/ ~9 }! g3 E I/ x0 D8 x! s
其實修改無敵很容易,
# p. D/ t- E* I, h2 n就以遊戲程式設計的觀點來說,
/ ]) ]" _* Z% v: v- M" T# I4 l一開始我會將人物無敵數值設定為09 X2 T% }& q/ }$ X7 [6 o: ^
ex: 7 _2 y; H/ `9 B% t
#define InvisibleInit 0: V- L$ c9 e9 b* K
. l$ n4 t: u) V( m& E然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),; y$ U5 J( _) H& N4 L2 b! I. h/ c8 Z
呼叫設定函數0 ^ I$ b5 V# R1 `0 @
ex:
" S; Z! m+ s8 K# V2 gBYTE InviIniVal(EVENT event,BYTE SetVal)9 A5 O$ f% W1 I
{
' U! t/ N4 @+ l4 s# W! T+ V//Deal event ...% k" y7 @4 g6 A$ J: k
/ P5 `7 g8 Q$ J' `. Y//Deal InitVal
, @8 T2 [7 G! d( h1 B" PBYTE ret = 0;
7 D4 Y. U; g4 T5 [+ V4 k# I4 QSetVal+=InvisibleInit;
, J! k9 {. W( q: w: _+ N5 {ret += SetVal ;
4 y. c) }: U l# Z. Areturn ret;
7 i. P& [* }: t+ Y: Z} & R; Q4 K% l0 [* u# I1 i4 c
- G; ?$ B+ z0 R5 m0 |) W" }
最後關切的函數當然是遞減函數:
& @: ?- ~+ y2 P3 K7 ?ex:
9 D5 r; _. M) U" [, g% D, m6 b+ }1 MBYTE DecInviVal(BYTE *InviVal); `" I$ o8 M9 y. \+ {
{% p8 q( J4 \' ~( O3 A' V ]
cout<<*InviVal<<endl;9 n4 |7 c5 n; Z9 o- k- A& g% M
(*InviVal)--; //*InviVal -= DecVal;
1 g% \. |, T$ `: ^. |cout<<*InviVal<<endl;: o0 \6 X. T) A$ H* b& P' y
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
* e# m5 h' K+ Treturn *InviVal;
% v5 F) w2 L( N- k6 G( h}
# @4 U8 _" Y$ x/ Z
8 r8 L' |. q. e/ b針對以上觀念,改遊戲就很簡單,
5 h; N: X, |& t/ g一開始我們先初始化數值,輸入'?',6 B: j0 `! S: W. Q5 \$ d# k
接著開始無敵時,輸入'+',& i( W0 i! K! v7 q( m( ^
接著我們知道無敵時間會開始變動,
) x+ I4 C. q. u3 ?1 N% |4 K6 X% N* |以上例來說時間開始減少,每隔一段時間輸入'-',
, f! R2 m" Q: ]( j最後沒有無敵效果了,輸入'!' 或是 '0'。. H: B9 e) A1 |* N5 @( Y8 L
2 T* Q/ w; K; r4 q
記憶體地址經由演算法篩選後,只會剩下幾個,
3 N- F2 ^4 R$ S H% ttry 一下,你要的地址就出現了。! u7 v' @& L2 z
& b2 d& z2 r+ _! Q, ?, L: u
P.S.以上程式已經Run過,沒有問題。0 A8 C: S' K7 {1 Z5 `
4 v# T+ _" m# |
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|