|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 $ v; ~ ~; _# Q1 E. a* h
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
, `0 q; ~' x) x& P; |. Z4 _! j- p6 _7 F/ a( T, k
其實修改無敵很容易,3 U/ W. v0 D$ M' s6 I0 }/ c/ u
就以遊戲程式設計的觀點來說,
* i. k" V" Y, Q9 z/ Y7 p( O+ A一開始我會將人物無敵數值設定為0
$ u- A" w5 d" A" nex:
5 B# L) Z- P2 F$ w4 m; {' U#define InvisibleInit 0
% M/ v0 e9 k' k7 A2 H' h( i: V7 |3 C
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞)," N# a) w6 p" a- p- D
呼叫設定函數& c1 t, p. _7 M; [( w( |; w, O, C
ex:
! }6 ~0 [1 v) ~# R: J2 GBYTE InviIniVal(EVENT event,BYTE SetVal): A/ [" G, b* E! [3 ^1 ~
{ y& h8 h8 R% D/ m
//Deal event ...
$ I- Q7 ^+ x Q
2 q/ y! e' Y' n. X//Deal InitVal
! r2 g7 `+ n& P |BYTE ret = 0;
" I( X4 l' T* C9 j% M& MSetVal+=InvisibleInit;
# E0 L- b9 C% _ret += SetVal ;' O! P* e9 P: M6 z& ~: r" n# V7 Y
return ret;& ~- v& r1 `! o: `( C+ `* _
} . X! o. k9 o- B! p; q) P
/ B. ]7 e S& i& a7 T% }最後關切的函數當然是遞減函數:; J f: |7 O, L0 X5 d
ex:: C1 j4 j; U! F$ N% n% ?
BYTE DecInviVal(BYTE *InviVal): c- q. f t; W# }. x4 {2 P2 `
{6 ~9 L: b. _& D3 M9 B
cout<<*InviVal<<endl;
8 F- |! h$ M0 v9 a3 _8 X+ ^(*InviVal)--; //*InviVal -= DecVal;$ u. d- r: n/ e! h
cout<<*InviVal<<endl;
1 U1 s+ X' `0 s3 G(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
, S4 D3 ?% N$ t8 Oreturn *InviVal;
2 e& ?6 a, {0 G# V8 j4 o3 h* S' R& t}5 @- p- }) p) ]7 _ h
- U! H. A( S( D9 @" P/ I8 m( R針對以上觀念,改遊戲就很簡單,
) }) I3 c( \" A- ~# n) i一開始我們先初始化數值,輸入'?',
$ m! v6 l) M9 ~7 G- m) g接著開始無敵時,輸入'+',, h! K# H6 a m
接著我們知道無敵時間會開始變動,
2 n+ w+ B" A7 Q% A$ y" y5 Y/ `2 r以上例來說時間開始減少,每隔一段時間輸入'-',% h+ m( d" a5 l: }7 ?" d
最後沒有無敵效果了,輸入'!' 或是 '0'。
( [) K& M# y- J1 @8 r/ H$ o+ p" a& t c0 W1 C
記憶體地址經由演算法篩選後,只會剩下幾個,( |4 j0 q) O) n* L9 p+ C1 Y( w6 \
try 一下,你要的地址就出現了。" J& v/ [8 |1 Z& u
; K2 ]) g0 ]: K* j
P.S.以上程式已經Run過,沒有問題。$ o1 x* h1 j l8 T* h" G |
$ w( e& \- M/ e. _( o% \" G[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|