|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
7 X( d( z! y5 z9 H& l- q* _' E1 M主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
, h! U9 Z; v4 _0 Z
v( J3 g: N4 o) T& T其實修改無敵很容易,
3 W; [) B. F6 t就以遊戲程式設計的觀點來說,3 k6 U$ C; y2 g7 u/ M# R
一開始我會將人物無敵數值設定為07 f( y7 ~. w* ~6 T
ex: 7 y8 T, [ ?: {) C- @- f4 Q4 j' V
#define InvisibleInit 0
( \; \ V1 G% X6 m! V! H3 y* K( K/ B4 _" _1 c# @" x
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),4 s& K; W ^9 b- \
呼叫設定函數
1 ]. T) @+ R; M1 _- Mex:
# U$ w! W* d7 S& S* XBYTE InviIniVal(EVENT event,BYTE SetVal)
4 t" u. a) x, f/ q{* n# [/ h+ \) y1 V; T/ Z
//Deal event ...
8 I( L5 A6 d0 K7 G- F+ Z7 i! |
* x" @0 q0 D8 F+ \. T4 _4 B7 L& p//Deal InitVal
2 }" |: {/ Z) \7 c2 K$ Z+ \BYTE ret = 0;
. M, V1 Z" S/ D/ }' YSetVal+=InvisibleInit; I9 T& r( M) U. b
ret += SetVal ;5 F# M$ h& Y2 w; P4 n- V
return ret;
& O& y. F+ F; W} % j6 t) ^# T/ J B( L% V
$ |1 A9 V t# O; U7 |- v最後關切的函數當然是遞減函數:
8 F9 V! r: h; O/ ?$ |- vex:
1 Y0 A( g; V( h+ Q; p( oBYTE DecInviVal(BYTE *InviVal)
, Z ~; C( w, c5 z{
9 F. u& L& f* N) ]& m Rcout<<*InviVal<<endl;$ d3 @0 ?: ]+ b; S5 F9 u$ g4 _
(*InviVal)--; //*InviVal -= DecVal;' V: {0 G1 x R! z) c
cout<<*InviVal<<endl;
! K$ X5 y5 d# e3 [(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;& _4 t) h; N+ K" q+ V3 f; k9 }( _
return *InviVal;
# ?/ t# w' w v1 S. n. [}; a e3 h/ }9 ]' b5 q! ]3 \7 ~
' g& C) Q0 ]- \0 y& x* ^% h8 d針對以上觀念,改遊戲就很簡單,$ L5 Z( ^ }/ `# M/ ~: A( x7 J& P
一開始我們先初始化數值,輸入'?',4 ?# ?6 B# A. F: x# P7 z
接著開始無敵時,輸入'+',* w m$ e% `( H0 `) }- Q. R5 z0 R
接著我們知道無敵時間會開始變動,, V+ D# Y0 }& j, @
以上例來說時間開始減少,每隔一段時間輸入'-',
7 o1 a' f* x( g/ z3 k最後沒有無敵效果了,輸入'!' 或是 '0'。
1 ^6 O6 i& D5 y
9 B$ R, @& v+ b: i M4 h3 q, W2 G) K記憶體地址經由演算法篩選後,只會剩下幾個,( C p @: S& n* s, g1 A
try 一下,你要的地址就出現了。* S& x7 P* e% Z$ p- C3 f
3 G0 l) s$ X" A" Y; a
P.S.以上程式已經Run過,沒有問題。
( B$ e% l5 c* u6 f5 P4 p( V, A3 I: _8 b, W3 U
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|