|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
) i0 p% U' L9 ]2 A0 ~" W主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 6 E1 [0 n& _! Z+ u
' |* q% p2 g9 n7 Y其實修改無敵很容易,
7 ^8 k, {) h+ f9 Z! k; R1 n: c就以遊戲程式設計的觀點來說,) Y* t. O9 A" F& }& T
一開始我會將人物無敵數值設定為0. I) i, `% D$ g, R1 x
ex:
- t7 ]" F- J2 m#define InvisibleInit 08 _/ X; ~' \. V# F7 \% G `) w* f
" ~$ O& ], K) t7 u
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),# P5 W) b5 j, `# v/ I
呼叫設定函數, B( d* K+ Q q- K- R2 b2 N
ex:+ ]& \' t* t7 f p3 u4 x
BYTE InviIniVal(EVENT event,BYTE SetVal); X; y* ]* L( t* a* f/ p: Z7 h* } f
{) g. D- B) V. E& C( Y( p
//Deal event ...
% C9 e) ?( ^, D0 j3 ]8 H: F4 _6 ^0 F) ]; W \/ F
//Deal InitVal( ^( G v% e( t1 n, G
BYTE ret = 0;6 g( w, A3 M$ C
SetVal+=InvisibleInit;
" n( F# s, O- H8 J1 B$ T8 `ret += SetVal ;5 Y2 X. a" p1 w5 C, d2 X. D
return ret;( T( v$ ] K9 f! W8 B
}
3 u- u8 g" [. b- D% ` N
$ b$ ?: Y# G6 `9 I* r最後關切的函數當然是遞減函數:
: j" M& N7 t6 y: M& b( e, ~ex:
5 X" E3 @2 k' I l: Y) GBYTE DecInviVal(BYTE *InviVal)
) Y ^# k- y- R3 ^4 i1 s1 c) w; A{
6 }) q* s$ K" A/ ]3 Tcout<<*InviVal<<endl;" m) k) w6 m+ e! G
(*InviVal)--; //*InviVal -= DecVal;4 _7 i* `' c7 a1 G" t M0 d; a
cout<<*InviVal<<endl;/ s$ Q! L( C1 {7 g z' W
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;% m9 Q9 R9 N* F
return *InviVal;
* C, Q* ]) x7 m/ G6 D! z5 {}
' p% A# G% H5 Z) r/ m( _2 v
: S* G. \( w+ J! M9 `: K針對以上觀念,改遊戲就很簡單,# E6 w- \1 C" R
一開始我們先初始化數值,輸入'?',
: @( Q- P( ^& J% z2 E R接著開始無敵時,輸入'+',
& S' j; N$ N% x- k( z接著我們知道無敵時間會開始變動,
2 g" }' Z& C! p7 U9 h3 _以上例來說時間開始減少,每隔一段時間輸入'-',
# W$ q& a% m! D- v) R. E最後沒有無敵效果了,輸入'!' 或是 '0'。
# c) p4 M2 Y6 }1 P5 Y
7 c" _' o) h' o$ w0 t3 J記憶體地址經由演算法篩選後,只會剩下幾個,, Z4 Y: h6 T1 s$ ] T1 t
try 一下,你要的地址就出現了。
' ~5 e/ d# H4 G" V+ T) v
( c2 B4 _4 w8 h0 l( @8 }, fP.S.以上程式已經Run過,沒有問題。
/ [1 H8 x% l! t) h$ R- ?: \6 p" A8 P! j3 X+ G# j7 U4 V; k
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|