|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
T+ T5 w" Z5 s W @主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
8 f& \1 e8 v$ V8 @" j( ?. L/ n |( }1 k$ e5 X3 Z' ?( }
其實修改無敵很容易,) b$ ]# G8 B8 g: w8 a7 Q9 \
就以遊戲程式設計的觀點來說,
% I* ?# h; S6 b/ q! T一開始我會將人物無敵數值設定為0
7 q) ~; m+ q" m4 w: ^7 pex:
4 W- w7 C5 T/ Y1 \ s#define InvisibleInit 0' X, F( t' W2 k5 u9 R l
& {4 k+ ]# r& R2 V) Q/ b
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),9 { y% Y, S* A2 `5 H
呼叫設定函數
3 K* {2 s. c, T/ f- wex:
! o$ l3 y, ^" c! ^- o$ ZBYTE InviIniVal(EVENT event,BYTE SetVal)" J# }# I$ w9 M* ]
{
+ D; [) F8 ~/ w* X2 K//Deal event ...3 m2 |8 y1 f4 v9 z. p; K$ z
; k+ @ m6 K0 W$ B' V, S
//Deal InitVal
# _3 ^% ]4 V3 d# }6 v2 nBYTE ret = 0;
8 w8 y) }# _ Y, v1 I0 WSetVal+=InvisibleInit;
9 n: ]$ @6 n2 x( A. vret += SetVal ;
% F" E1 i) T5 @/ i- s/ J5 Freturn ret;
5 E$ _* Y! {# ]) H/ \: t}
1 E* J" s4 `. h6 _- @6 H# L. R6 H+ ?7 o: W. D, f- {
最後關切的函數當然是遞減函數:2 O7 H9 V6 X* F% K2 A2 h+ \0 a
ex:" X& D8 L! e( t$ ]
BYTE DecInviVal(BYTE *InviVal)8 M7 I* R; t+ u3 `5 B# l: D
{1 q9 G& y6 o; J; f$ z
cout<<*InviVal<<endl;7 @' l4 l/ W) S+ q3 f( j6 w1 E
(*InviVal)--; //*InviVal -= DecVal;
( Q2 |; {& R6 F' c8 t5 o, rcout<<*InviVal<<endl;
6 t/ V* U+ j" v! |(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
7 a* Y& ^/ z7 [- L+ Greturn *InviVal;
. m' f& |( z/ Y; f* A}
+ Z, g* J: A0 Z5 j5 s
0 P. U4 h. M8 ~% Z針對以上觀念,改遊戲就很簡單,
7 R$ J6 i# r6 l一開始我們先初始化數值,輸入'?',
( e" U" z7 ~+ U$ [接著開始無敵時,輸入'+',( m. a# W% b+ J/ ~$ G4 `: V2 {
接著我們知道無敵時間會開始變動,# y c+ k1 b {6 t8 B% c
以上例來說時間開始減少,每隔一段時間輸入'-',
3 G, j4 f9 j1 {$ a6 G* {最後沒有無敵效果了,輸入'!' 或是 '0'。8 x, |! {( r# E& U0 g! N6 e
: R& c2 |0 G6 J* d3 \, \( h6 s+ q記憶體地址經由演算法篩選後,只會剩下幾個,
/ _, b6 e" K1 s1 _+ G& Atry 一下,你要的地址就出現了。
; } `& T X8 {$ d
# @' H2 ?: G+ O; S3 qP.S.以上程式已經Run過,沒有問題。$ F1 D& ]% Y$ t2 o2 E6 a3 {% Q
) d& Z+ ^' G z2 }0 b/ g% I[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|