|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 1 C: }% v q) I+ \
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
4 N Q& a& s l) e3 [+ \9 p" w' e7 s( g4 C
其實修改無敵很容易,
1 B. i6 H+ }3 _4 J就以遊戲程式設計的觀點來說,
; S [6 H4 N* j+ M一開始我會將人物無敵數值設定為0* I5 v2 o( e) M+ I5 b, S. R* n
ex: 4 P# K& f# E5 q7 \1 t" z* | v- P
#define InvisibleInit 0
6 ^ }7 o4 U" p/ {+ b$ b6 b! P2 `* y7 U! S, d
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),. J4 d* r/ f+ ]4 E! v
呼叫設定函數
{6 a, p7 d; Q( v) G. E" jex:
* Y0 d. Y+ c% X5 a6 XBYTE InviIniVal(EVENT event,BYTE SetVal)
5 Z+ W- q3 m. x+ f& _{
1 o3 d0 l, T+ j Z0 h//Deal event ...
2 e3 ` P, W4 W# {/ D, Q5 Z1 k. g) v% M4 ]8 T9 o- g
//Deal InitVal& s" x7 W5 {: u% U: R9 r3 j
BYTE ret = 0;, P( {0 ^% y" s4 H7 s. t7 J v
SetVal+=InvisibleInit;8 @* t7 u, I- o+ K% s
ret += SetVal ;: W+ x$ H. R; P3 @4 X* ~8 \" }% b6 O7 y
return ret;
6 x9 M7 \% _; W3 z& \} ( m. r X# U B( H5 q$ K$ H. \
4 \) D$ R- S3 o% I% _% L2 o7 F2 U6 d
最後關切的函數當然是遞減函數:
) D' Q0 }/ L( i3 m9 ?# n* e) }ex:
, h7 d( c9 f* t( wBYTE DecInviVal(BYTE *InviVal)
/ O7 Y( K# y7 l) b2 y{
9 A# X- v# }, Hcout<<*InviVal<<endl;' |$ a: ^* D5 Q3 P
(*InviVal)--; //*InviVal -= DecVal;
- n: R0 h4 X* W& E- }/ _: Kcout<<*InviVal<<endl;; ^( j0 @: P8 e
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
" a# ]9 {! K5 l" |+ Hreturn *InviVal;6 O& I) {8 E2 Y/ ?: ^
}
7 [9 J2 ^9 x1 }, t0 s* Z: r+ t7 e9 k, j) @% w) A. s: C, `7 O4 q
針對以上觀念,改遊戲就很簡單,
* j) E& U) J* S6 W/ U) k一開始我們先初始化數值,輸入'?',
0 A& j) `3 s5 {6 k# f* P( R" T9 A接著開始無敵時,輸入'+',
# d7 t1 A; c3 a- P5 v- U接著我們知道無敵時間會開始變動,% R9 x8 U9 b: M3 i
以上例來說時間開始減少,每隔一段時間輸入'-',& f, P8 e; I8 e* H( y+ J+ Q6 k7 V
最後沒有無敵效果了,輸入'!' 或是 '0'。
# N* p- O# A% N0 i+ o0 a3 i# I( t9 f0 F& e
記憶體地址經由演算法篩選後,只會剩下幾個,3 \$ k2 S8 @" }3 r$ N
try 一下,你要的地址就出現了。1 b% n+ ]' `2 k# j+ b6 V; m: H0 ^9 w
0 R3 Q9 V- ^( b' Q" y) lP.S.以上程式已經Run過,沒有問題。4 M3 b5 r. G. e+ C# Q) S
9 [ g0 [1 L, u
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|